Dart语言:如何创建JWT令牌

时间:2015-07-15 18:53:48

标签: dart token jwt

我在Dart上创建JWT令牌时遇到问题。我已经尝试了dart_jwt包,但它没有按照示例("编码"部分HERE)工作。

如果有人能帮助我在Dart上创建JWT令牌,即使使用不同的包,我会很高兴。

2 个答案:

答案 0 :(得分:0)

你需要使用其中一个子类而不是像readme.md see中那样的抽象类

final DateTime issuedAt   = new DateTime.now();
final DateTime expiresAt  = issuedAt.add(const Duration(minutes: 5));
String iss                = 'xxxxxxx';

final claimSet            = new OpenIdJwtClaimSet.build(issuer:  iss, subject: 'xxxx', expiry: expiresAt, issuedAt: issuedAt);
final signatureContext    = new JwaSymmetricKeySignatureContext(app.api.secret);
final jwt                 = new JsonWebToken.jws(claimSet, signatureContext);
return jwt.encode();

答案 1 :(得分:0)

JWT令牌只是以Base64Url格式编码的JSON标头,有效负载和签名。 (请参阅example。)您可以自己完成所有操作,但是有些软件包可以为您完成此操作。 jaguar_jwt软件包正在积极维护,并且对我来说效果很好。

// import 'package:jaguar_jwt/jaguar_jwt.dart';

final claimSet = JwtClaim(
  issuer: 'Me',
  subject: '${userId}',
  issuedAt: DateTime.now(),
  maxAge: const Duration(hours: 12)
);

const String secret = 'myreallysecretpassword';
String token = issueJwtHS256(claimSet, secret);

另请参见