corsac_jwt library

Lightweight JSON Web Token (JWT) implementation.

Usage

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();
  var signedToken = builder.getSignedToken(signer, 'sharedSecret');
  print(signedToken); // prints encoded JWT
  var stringToken = signedToken.toString();

  var decodedToken = new JWT.parse(stringToken);
  // Verify signature:
  print(decodedToken.verify(signer, 'sharedSecret')); // 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)
}

Classes

JWT
JSON Web Token.
JWTBuilder
Builder for JSON Web Tokens.
JWTHmacSha256Signer
Signer implementing HMAC encryption using SHA256 hashing.
JWTRsaSha256Signer
JWTSigner
Signer interface for JWT.
JWTValidator
Validator for JSON Web Tokens.

Exceptions / Errors

JWTError
Error thrown by JWT when parsing tokens from string.