corsac_jwt 1.0.1 copy "corsac_jwt: ^1.0.1" to clipboard
corsac_jwt: ^1.0.1 copied to clipboard

Lightweight implementation of JSON Web Tokens (JWT).

Lightweight implementation of JSON Web Tokens (JWT).

Usage #

import 'package:corsac_jwt/corsac_jwt.dart';

void main() {
  var builder = new JWTBuilder();
  var token = builder
    ..issuer = 'https://api.foobar.com'
    ..expiresAt = new DateTime.now().add(new Duration(minutes: 3))
    ..setClaim('data', {'userId': 836})
    ..getToken(); // returns token without signature

  var signer = new JWTHmacSha256Signer('sharedSecret');
  var signedToken = builder.getSignedToken(signer);
  print(signedToken); // prints encoded JWT
  var stringToken = signedToken.toString();

  var decodedToken = new JWT.parse(stringToken);
  // Verify signature:
  print(decodedToken.verify(signer)); // true

  // Validate claims:
  var validator = new JWTValidator() // uses DateTime.now() by default
    ..issuer = 'https://api.foobar.com'; // set claims you wish to validate
  Set<String> errors = validator.validate(decodedToken);
  print(errors); // (empty list)
}

Supported signers:

  • HS256 (JwtHmacSha256Signer).
  • RS256 (JwtRsaSha256Signer)

Refer to documentation for more details.

License #

BSD-2

28
likes
140
points
11.1k
downloads

Publisher

verified publishermemspace.app

Weekly Downloads

Lightweight implementation of JSON Web Tokens (JWT).

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-2-Clause (license)

Dependencies

asn1lib, crypto, logging, pointycastle, rsa_pkcs

More

Packages that depend on corsac_jwt