Supabase.GoTrue (supabase_gotrue v0.3.10)

This module provides the functionality to interact with the GoTrue API, allowing management of users, sessions, and authentication.

It also aims to provide integrations with Plug and Phoenix LiveView applications.

For detailed information about the GoTrue API, check the official documentation at https://supabase.io/docs/reference/javascript/auth-api

And also refer to functions and submodules documentation for more information.

Summary

Functions

Retrieves the auth module handle from the application configuration. Check https://hexdocs.pm/supabase_gotrue/readme.html#usage

Get the user associated with the current session.

Resends a signuo confirm email for the given email address.

Sends a recovery password email for the given email address.

Signs in a user with ID token.

Signs in a user with OAuth.

Signs in a user with OTP.

Signs in a user with email/phone and password.

Signs in a user with SSO.

Signs up a user with email/phone and password.

Updates the current logged in user.

Verifies an OTP code.

Functions

Link to this function

get_auth_module!()

Retrieves the auth module handle from the application configuration. Check https://hexdocs.pm/supabase_gotrue/readme.html#usage

Link to this function

get_user(client, session)

Get the user associated with the current session.

Parameters

Examples

iex> session = %Supabase.GoTrue.Session{access_token: "example_token"}
iex> Supabase.GoTrue.get_user(pid | client_name, session)
{:ok, %Supabase.GoTrue.User{}}
Link to this function

resend(client, email, opts)

@spec resend(Supabase.Client.t(), String.t(), opts) :: :ok | {:error, term()}
when opts:
       [{:redirect_to, String.t()}]
       | [{:captcha_token, String.t()}]
       | [redirect_to: String.t(), captcha_token: String.t()]

Resends a signuo confirm email for the given email address.

Parameters

  • client - The Supabase client to use for the request.
  • email - A valid user email address to recover password
  • opts:
    • redirect_to: the url where the user should be redirected to reset their password
    • captcha_token

Examples

iex> Supabase.GoTrue.resend(client, "john@example.com", redirect_to: "http://localohst:4000/reset-pass") :ok

Link to this function

reset_password_for_email(client, email, opts)

@spec reset_password_for_email(Supabase.Client.t(), String.t(), opts) ::
  :ok | {:error, term()}
when opts:
       [{:redirect_to, String.t()}]
       | [{:captcha_token, String.t()}]
       | [redirect_to: String.t(), captcha_token: String.t()]

Sends a recovery password email for the given email address.

Parameters

  • client - The Supabase client to use for the request.
  • email - A valid user email address to recover password
  • opts:
    • redirect_to: the url where the user should be redirected to reset their password
    • captcha_token

Examples

iex> Supabase.GoTrue.reset_password_for_email(client, "john@example.com", redirect_to: "http://localohst:4000/reset-pass") :ok

Link to this function

sign_in_with_id_token(client, credentials)

Signs in a user with ID token.

Parameters

Examples

iex> credentials = %Supabase.GoTrue.SignInWithIdToken{}
iex> Supabase.GoTrue.sign_in_with_id_token(pid | client_name, credentials)
{:ok, %Supabase.GoTrue.User{}}
Link to this function

sign_in_with_oauth(client, credentials)

Signs in a user with OAuth.

Parameters

Examples

iex> credentials = %Supabase.GoTrue.SignInWithOauth{}
iex> Supabase.GoTrue.sign_in_with_oauth(pid | client_name, credentials)
{:ok, atom, URI.t()}
Link to this function

sign_in_with_otp(client, credentials)

Signs in a user with OTP.

Parameters

Examples

iex> credentials = %Supabase.GoTrue.SignInWithOTP{}
iex> Supabase.GoTrue.sign_in_with_otp(pid | client_name, credentials)
{:ok, %Supabase.GoTrue.Session{}}
Link to this function

sign_in_with_password(client, credentials)

Signs in a user with email/phone and password.

Parameters

Examples

iex> credentials = %Supabase.GoTrue.SignInWithPassword{}
iex> Supabase.GoTrue.sign_in_with_password(pid | client_name, credentials)
{:ok, %Supabase.GoTrue.Session{}}
Link to this function

sign_in_with_sso(client, credentials)

Signs in a user with SSO.

Parameters

Examples

iex> credentials = %Supabase.GoTrue.SignInWithSSO{}
iex> Supabase.GoTrue.sign_in_with_sso(pid | client_name, credentials)
{:ok, %Supabase.GoTrue.User{}}
Link to this function

sign_up(client, credentials)

Signs up a user with email/phone and password.

Parameters

  • client - The Supabase client to use for the request.
  • credentials - The credentials to use for the sign up. Check Supabase.GoTrue.Schemas.SignUpWithPassword for more information.

Examples

iex> credentials = %Supabase.GoTrue.SignUpWithPassword{}
iex> Supabase.GoTrue.sign_up(pid | client_name, credentials)
{:ok, %Supabase.GoTrue.User{}}
Link to this function

update_user(client, conn, attrs)

@spec update_user(Supabase.Client.t(), conn, Supabase.GoTrue.Schemas.UserParams.t()) ::
  {:ok, conn} | {:error, term()}
when conn: Plug.Conn.t() | Phoenix.LiveView.Socket.t()

Updates the current logged in user.

Parameters

Examples

iex> params = %{email: "another@example.com", password: "new-pass"} iex> Supabase.GoTrue.update_user(client, conn, params)

Link to this function

verify_otp(client, params)

Verifies an OTP code.

Parameters

Examples

iex> params = %Supabase.GoTrue.VerifyOTP{}
iex> Supabase.GoTrue.verify_otp(pid | client_name, params)
{:ok, %Supabase.GoTrue.Session{}}