JWT.create constructor

JWT.create(
  1. Map<String, dynamic> header,
  2. Map<String, dynamic> payload,
  3. RSAPrivateKey key
)

Implementation

factory JWT.create(
  Map<String, dynamic> header,
  Map<String, dynamic> payload,
  RSAPrivateKey key,
) {
  final encodedHeader = stripBase64Padding(_jsonBase64.encode(header));
  final encodedPayload = stripBase64Padding(_jsonBase64.encode(payload));
  final bodyPart = '$encodedHeader.$encodedPayload';
  final body = utf8.encode(bodyPart);
  final signer = Signer('SHA-256/RSA');
  signer.init(true, PrivateKeyParameter<RSAPrivateKey>(key));
  final rsaSignature =
      signer.generateSignature(Uint8List.fromList(body)) as RSASignature;
  final signature = stripBase64Padding(base64UrlEncode(rsaSignature.bytes));

  return JWT('$bodyPart.$signature');
}