validateToken method

  1. @override
Future<AuthenticationData> validateToken(
  1. String token
)
override

Validates a token and returns authentication data

Implementation

@override
Future<AuthenticationData> validateToken(String token) async {
  try {
    final jwt = JWT.verify(token, _getJwtKey());

    final payload = jwt.payload as Map<String, dynamic>;

    if (payload[AuthClaims.roles] != null && payload[AuthClaims.roles] is! List) {
      throw Exception('Invalid JWT: roles must be a list');
    }

    if (payload[AuthClaims.permissions] != null && payload[AuthClaims.permissions] is! List) {
      throw Exception('Invalid JWT: permissions must be a list');
    }

    return JwtAuthenticationData(
      claims: payload,
    );
  } catch (e) {
    throw Exception('Invalid JWT: $e');
  }
}