getUserIdFromToken method
Extracts user ID from a JWT token. Returns Result<int> with user ID or error.
Implementation
Result<int> getUserIdFromToken(String? token) {
if (token == null) {
return Result.error('[DataLoss] Token not found');
}
if (secretKey.isEmpty) {
return Result.error('[Internal] Server secret key is not set');
}
try {
final jwtClaim = verifyJwtHS256Signature(token, secretKey);
// Validate expiration and other claims
jwtClaim.validate();
var id = jwtClaim[userIdKey];
id = id is int ? id : int.tryParse(id.toString());
if (id == null) {
return Result.error('[DataLoss] User id not found');
}
return Result.value(id);
} catch (e) {
return Result.error('[DataLoss] Invalid token $e');
}
}