verify method

Map<String, Object?>? verify(
  1. String token
)

Valida o token; retorna os claims ou null se inválido/expirado.

Implementation

Map<String, Object?>? verify(String token) {
  final parts = token.split('.');
  if (parts.length != 3) return null;
  final expected = _sign('${parts[0]}.${parts[1]}');
  if (!_constTimeEquals(expected, parts[2])) return null;
  final claims = jsonDecode(_unb64(parts[1])) as Map<String, Object?>;
  final exp = claims['exp'];
  if (exp is int && DateTime.now().millisecondsSinceEpoch ~/ 1000 > exp) {
    return null; // expirado
  }
  return claims;
}