secureAuthToken function

Future<String> secureAuthToken({
  1. required TokenClaims claims,
  2. required String iss,
  3. required String key,
  4. JWTAlgorithm? alg,
  5. Duration? exp,
})

Implementation

Future<String> secureAuthToken({
  required TokenClaims claims,
  required String iss,
  required String key,
  JWTAlgorithm? alg,
  Duration? exp,
}) async {
  final algorithm = alg ?? JWTAlgorithm.HS256;
  final expiration = exp ?? const Duration(hours: 2);

  // final mockIss = iss ?? 'dev.electric-sql.com';
  // final mockKey = key ?? 'integration-tests-signing-key-example';

  final int iat = DateTime.now().millisecondsSinceEpoch ~/ 1000;

  final jwt = JWT(
    {
      ...claims,
      'iat': iat,
      'type': 'access',
    },
    issuer: iss,
  );

  final signed = jwt.sign(
    SecretKey(key),
    algorithm: algorithm,
    expiresIn: expiration,
    // We are providing a custom iat, so don't let it automatically
    // generate one.
    noIssueAt: true,
  );

  return signed;
}