aiinJwtEmail function
The email claim of an AIIN JWT payload, or null when the token carries
none or is not a JWT. Used to name provider entries after the account.
Implementation
String? aiinJwtEmail(String token) {
final parts = token.split('.');
if (parts.length != 3) return null;
final Object? claims;
try {
claims = jsonDecode(
utf8.decode(base64Url.decode(base64Url.normalize(parts[1]))),
);
} on FormatException {
return null;
} on ArgumentError {
return null;
}
if (claims is! Map) return null;
final email = claims['email'];
return email is String && email.isNotEmpty ? email : null;
}