jwtPayload function
Decodes payload (middle part) as JSON map; returns null if invalid.
Implementation
Map<String, Object?>? jwtPayload(String token) {
if (!isJwtStructure(token)) return null;
try {
final String payload = token.split('.')[_jwtPayloadPartIndex];
final int padLen = _base64PaddingBlockSize - payload.length % _base64PaddingBlockSize;
final String padded = payload + '=' * padLen;
final Uint8List bytes = Uint8List.fromList(base64Url.decode(padded));
final String json = String.fromCharCodes(bytes);
final decoded = jsonDecode(json);
if (decoded is! Map) return null;
return Map<String, Object?>.from(decoded);
} on Object catch (e, st) {
if (kDebugMode) log(_kLogJwtPayloadFailed, error: e, stackTrace: st);
return null;
}
}