parseJwt function

Map<String, dynamic> parseJwt(
  1. String token
)

Implementation

Map<String, dynamic> parseJwt(String token) {
  String getJsonFromJWT(String splittedToken) {
    final String normalizedSource = base64Url.normalize(splittedToken);
    return utf8.decode(base64Url.decode(normalizedSource));
  }

  final parts = token.split('.');
  if (parts.length != 3) {
    throw const FormatException('invalid token');
  }

  final payload = getJsonFromJWT(parts[1]);
  final payloadMap = json.decode(payload);
  if (payloadMap is! Map<String, dynamic>) {
    throw const FormatException('invalid payload');
  }

  return payloadMap;
}