validateToken method
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');
}
}