philiprehberger_jwt_decoder
Lightweight JWT token decoder with typed claim access and expiration checking
Requirements
- Dart >= 3.6
Installation
Add to your pubspec.yaml:
dependencies:
philiprehberger_jwt_decoder: ^0.3.0
Then run:
dart pub get
Usage
import 'package:philiprehberger_jwt_decoder/jwt_decoder.dart';
final payload = JwtDecoder.decode(token);
print(payload.subject); // user-123
print(payload.expiration); // 2026-04-04 12:00:00.000
Check Expiration
if (JwtDecoder.isExpired(token)) {
print('Token has expired');
}
final remaining = JwtDecoder.timeToExpiry(token);
print('Expires in ${remaining?.inMinutes} minutes');
Validate Structure
if (JwtDecoder.isValid(token)) {
print('Token has valid JWT structure');
}
Clock Skew Tolerance
JwtDecoder.isExpired(token, clockSkew: Duration(seconds: 30));
Header Inspection
import 'package:philiprehberger_jwt_decoder/philiprehberger_jwt_decoder.dart';
final header = JwtDecoder.decodeHeader(token);
print(header['alg']); // "HS256"
print(header['typ']); // "JWT"
final alg = JwtDecoder.algorithm(token); // "HS256"
Custom Claims
final payload = JwtDecoder.decode(token);
final role = payload.claim<String>('role'); // 'admin'
final level = payload.claim<int>('level'); // 5
API
| Method | Description |
|---|---|
JwtDecoder.decode(token) |
Decode a JWT and return its payload |
JwtDecoder.decodeHeader(token) |
Decode the JWT header and return the claims map |
JwtDecoder.algorithm(token) |
Get the alg claim from the header |
JwtDecoder.isValid(token) |
Check if a token has valid JWT structure |
JwtDecoder.isExpired(token, {clockSkew}) |
Check if a token has expired |
JwtDecoder.timeToExpiry(token) |
Get remaining time until expiration |
JwtPayload.subject |
The sub claim |
JwtPayload.issuedAt |
The iat claim as DateTime |
JwtPayload.expiration |
The exp claim as DateTime |
JwtPayload.issuer |
The iss claim |
JwtPayload.claim<T>(key) |
Get any custom claim by key |
Development
dart pub get
dart analyze --fatal-infos
dart test
Support
If you find this project useful:
License
Libraries
- jwt_decoder
- philiprehberger_jwt_decoder
- Lightweight JWT token decoder with typed claim access and expiration checking.