parseJwtHeader static method

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

Decodes the header portion of a Firebase JWT token.

Returns a map containing the header claims.

Throws an Exception if token is malformed or cannot be decoded.

Implementation

static Map<String, dynamic> parseJwtHeader(String token) {
  final parts = token.split('.');
  if (parts.length != 3) {
    throw Exception('invalid token');
  }

  final payload = _decodeBase64(parts[0]);
  final payloadMap = json.decode(payload);
  if (payloadMap is! Map<String, dynamic>) {
    throw Exception('invalid payload');
  }

  return payloadMap;
}