Dart语言:如何创建JWT令牌

问题描述 投票:3回答:2

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

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

dart token jwt
2个回答
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();

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);

See also

© www.soinside.com 2019 - 2024. All rights reserved.