jwtPayload function

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

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;
  }
}