Supabase.GoTrueBehaviour behaviour (supabase_gotrue v0.5.2)

View Source

Behaviour specification for the Supabase.GoTrue module.

This module defines the contract that any GoTrue implementation must fulfill, providing function specifications and return types for all authentication operations.

Summary

Types

conn()

@type conn() :: Plug.Conn.t() | Phoenix.LiveView.Socket.t()

sign_in_response()

@type sign_in_response() :: {:ok, Supabase.GoTrue.Session.t()} | {:error, term()}

Callbacks

exchange_code_for_session(t, t, t, map)

@callback exchange_code_for_session(Supabase.Client.t(), String.t(), String.t(), map()) ::
  sign_in_response()

get_server_health(t)

@callback get_server_health(Supabase.Client.t()) ::
  {:ok, Supabase.GoTrue.Schemas.ServerHealth.t()} | {:error, term()}

get_server_settings(t)

@callback get_server_settings(Supabase.Client.t()) ::
  {:ok, Supabase.GoTrue.Schemas.ServerSettings.t()} | {:error, term()}

get_user(t, t)

@callback get_user(Supabase.Client.t(), Supabase.GoTrue.Session.t()) ::
  {:ok, Supabase.GoTrue.User.t()} | {:error, term()}

get_user_identities(t, t)

@callback get_user_identities(Supabase.Client.t(), Supabase.GoTrue.Session.t()) ::
  {:ok, [Supabase.GoTrue.User.Identity.t()]} | {:error, term()}

reauthenticate(t, t)

@callback reauthenticate(Supabase.Client.t(), Supabase.GoTrue.Session.t()) ::
  :ok | {:error, term()}

refresh_session(t, t)

@callback refresh_session(Supabase.Client.t(), String.t()) :: sign_in_response()

resend(t, t, t)

@callback resend(
  Supabase.Client.t(),
  String.t(),
  Supabase.GoTrue.Schemas.ResendParams.t()
) ::
  :ok | {:error, term()}

reset_password_for_email(t, t, opts)

@callback 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()]

sign_in_anonymously(t, t)

sign_in_with_id_token(t, map)

@callback sign_in_with_id_token(Supabase.Client.t(), map()) :: sign_in_response()

sign_in_with_oauth(t, map)

@callback sign_in_with_oauth(Supabase.Client.t(), map()) ::
  {:ok, atom(), String.t()} | {:error, term()}

sign_in_with_otp(t, map)

@callback sign_in_with_otp(Supabase.Client.t(), map()) ::
  :ok | {:ok, String.t()} | {:error, term()}

sign_in_with_password(t, map)

@callback sign_in_with_password(Supabase.Client.t(), map()) :: sign_in_response()

sign_in_with_sso(t, map)

@callback sign_in_with_sso(Supabase.Client.t(), map()) ::
  {:ok, String.t()} | {:error, term()}

sign_up(t, map)

@callback sign_up(Supabase.Client.t(), map()) ::
  {:ok, Supabase.GoTrue.User.t()} | {:error, term()}

update_user(t, conn, t)

@callback update_user(Supabase.Client.t(), conn(), Supabase.GoTrue.Schemas.UserParams.t()) ::
  {:ok, conn()} | {:error, term()}

verify_otp(t, map)

@callback verify_otp(Supabase.Client.t(), map()) :: sign_in_response()