OneIdAuthResult.fromJson constructor
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 [],
);
}