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 headerJson = _decodeBase64(parts[0]);
  final headerMap = json.decode(headerJson);
  if (headerMap is! Map<String, dynamic>) {
    throw Exception('invalid header');
  }

  return headerMap;
}