tokenBlacklist static method
Middleware para verificar tokens en blacklist
blacklistedTokens - Set de tokens revocados/blacklisteados
Implementation
static Middleware tokenBlacklist({
required Set<String> blacklistedTokens,
}) {
return (Handler innerHandler) {
return (Request request) async {
final requestId = request.context['request_id'] as String? ?? 'unknown';
try {
// Obtener token del contexto
final authHeader = request.headers['authorization'];
if (authHeader != null && authHeader.startsWith('Bearer ')) {
final token = authHeader.substring(7);
if (blacklistedTokens.contains(token)) {
Log.w('[$requestId] Blacklisted token attempted access');
return Response(
401,
body: jsonEncode({
'success': false,
'error': {
'code': 'TOKEN_BLACKLISTED',
'message': 'Token has been revoked',
'status_code': 401,
},
'timestamp': DateTime.now().toIso8601String(),
'request_id': requestId,
}),
headers: {
'Content-Type': 'application/json',
'X-Request-ID': requestId,
},
);
}
}
return await innerHandler(request);
} catch (e) {
Log.e('[$requestId] Token blacklist check error: $e');
return await innerHandler(request);
}
};
};
}