OneIdAuthResult.fromJson constructor

OneIdAuthResult.fromJson(
  1. Map<String, dynamic> json
)

Parses either a raw OAuth token response (expires_in seconds, as returned by the token endpoint) or this class's own toJson shape (expires_at ISO-8601, as read back from storage).

Implementation

factory OneIdAuthResult.fromJson(Map<String, dynamic> json) {
  final expiresIn = json['expires_in'];
  final expiresAt = json['expires_at'] as String?;
  return OneIdAuthResult(
    accessToken: json['access_token'] as String,
    tokenType: json['token_type'] as String? ?? 'DPoP',
    refreshToken: json['refresh_token'] as String?,
    idToken: json['id_token'] as String?,
    accessTokenExpiration: expiresAt != null
        ? DateTime.parse(expiresAt)
        : expiresIn is int
            ? DateTime.now().toUtc().add(Duration(seconds: expiresIn))
            : null,
    scopes: (json['scope'] as String?)?.split(' ') ?? const [],
  );
}