signInWithOpenIDConnect method
Logs in an OpenID Connect user using their idToken.
Implementation
Future<GotrueSessionResponse> signInWithOpenIDConnect(
OpenIDConnectCredentials oidc,
) async {
try {
final body = {
'id_token': oidc.idToken,
'nonce': oidc.nonce,
'client_id': oidc.clientId,
"issuer": oidc.issuer,
'provider': oidc.provider?.name(),
};
final fetchOptions = FetchOptions(headers);
const queryString = '?grant_type=id_token';
final response = await _fetch.post(
'$url/token$queryString',
body,
options: fetchOptions,
);
if (response.error != null) {
return GotrueSessionResponse.fromResponse(response: response);
} else {
final session =
Session.fromJson(response.rawData as Map<String, dynamic>);
return GotrueSessionResponse.fromResponse(
response: response,
data: session,
);
}
} catch (e) {
return GotrueSessionResponse(error: GotrueError(e.toString()));
}
}