JavaScript: Sign in a user

Examples

Sign in with email and password

const \{ user, session, error \} = await supabase.auth.signIn(\{
  email: 'example@email.com',
  password: 'example-password',
\})

Sign in with magic link.

const \{ user, session, error \} = await supabase.auth.signIn(\{
  email: 'example@email.com'
\})

Sign in using third-party providers.

const \{ user, session, error \} = await supabase.auth.signIn(\{
  // provider can be 'github', 'google', 'gitlab', and more
  provider: 'github'
\})

Sign in with phone and password

const \{ user, session, error \} = await supabase.auth.signIn(\{
  phone: '+13334445555',
  password: 'some-password',
\})

Sign in using a third-party provider with redirect

const \{ user, session, error \} = await supabase.auth.signIn(\{
  provider: 'github'
\}, \{
  redirectTo: 'https://example.com/welcome'
\})

Sign in with scopes

const \{ user, session, error \} = await supabase.auth.signIn(\{
  provider: 'github'
\}, \{
  scopes: 'repo gist notifications'
\})
const oAuthToken = session.provider_token // use to access provider API

Sign in using a refresh token (e.g. in React Native).

// An example using Expo's `AuthSession`
const redirectUri = AuthSession.makeRedirectUri(\{ useProxy: false \});
const provider = 'google';

AuthSession.startAsync(\{
  authUrl: `https://MYSUPABASEAPP.supabase.co/auth/v1/authorize?provider=$\{provider\}&redirect_to=$\{redirectUri\}`,
  returnUrl: redirectUri,
\}).then(async (response: any) => \{
  if (!response) return;
  const \{ user, session, error \} = await supabase.auth.signIn(\{
    refreshToken: response.params?.refresh_token,
  \});
\});