signInWithOpenIDConnect method

Future<GotrueSessionResponse> signInWithOpenIDConnect(
  1. OpenIDConnectCredentials oidc
)

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()));
  }
}