createTokenPair method

Future<TokenPair> createTokenPair(
  1. String userId,
  2. TokenServiceConfigurations configurations
)

Create a token with its related refresh token.

Implementation

Future<TokenPair> createTokenPair(
    String userId, TokenServiceConfigurations configurations) async {
  var tokenExpiry =
      configurations.tokenExpiryDuration ?? const Duration(days: 365 * 1);

  var refreshExpiry = configurations.refreshTokenExpiryDuration ??
      const Duration(days: 365 * 2);

  final tokenId = Uuid().v4();
  String subject = 'user:$userId';
  var token = generateJwt(subject, configurations.host, configurations,
      jwtId: tokenId, expiryDuration: tokenExpiry);

  final refreshToken = generateJwt(
      subject, configurations.host, configurations,
      jwtId: tokenId, expiryDuration: refreshExpiry);

  await _addRefreshToken(tokenId, refreshToken, refreshExpiry);

  return TokenPair(token, refreshToken);
}