メインコンテンツまでスキップ

signIn()

Log in an existing user, or login via a third-party provider.

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

Parameters

  • __namedParametersrequiredUserCredentials

    No description provided.

  • optionsrequiredobject

    No description provided.

      Properties
    • captchaTokenoptionalstring

      No description provided.

    • queryParamsoptionalobject

      No description provided.

    • redirectTooptionalstring

      No description provided.

    • scopesoptionalstring

      No description provided.

    • shouldCreateUseroptionalboolean

      No description provided.

Notes

  • ユーザーはメールかOAuthでサインアップできます。
  • passwordを指定せずにemailを指定した場合、ユーザーにはマジック・リンクが送られます。
  • マジック・リンクの送信先URLは、SITE_URLという設定変数で決まります。これを変更するには、app.supabase.comの「Authentication」→「Settings」で行います。
  • providerを指定すると、ブラウザーで関連するログイン・ページを開きます。

Examples

Eメールでサインイン

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

マジック・リンクでサインイン

パスワードが入力されていない場合、ユーザーのメールアドレスに「マジック・リンク」が送信されます。このリンクをクリックすることで、有効なセッションでアプリケーションを開くことができます。デフォルトでは、ユーザーは60秒に1回しかマジックリンクを要求できません。

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

サードパーティのプロバイダーを使用してサインイン

Supabaseは多くの様々なサードパーティのプロバイダをサポートします。

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

電話番号でサインイ

Supabaseは電話番号による認証をサポートしています。

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

リダイレクトでサインイン

なお、redirectToパラメーターはOAuthログインにのみ関係し、ログインの流れはAuthサーバーによって管理されます。 メールや電話によるログインを使用している場合は、独自のリダイレクトを設定(メール/SMSテンプレート内)する必要があります。

ユーザーがログインした後、どこかへリダイレクトするようにコントロールしたい場合があります。Supabaseはこの機能をサポートしています。 Webサイト上の任意のURLパス(ベースになるドメインはAuth設定のドメインと同じにする必要があります)。

ユーザがログインした後、どこにリダイレクトされるかを制御したい場合があります。Supabaseでは、あなたのウェブサイト上のURLパスを指定できます(URLは、あなたのサイトURLと同じドメインにあるか[ダッシュボードのAuth→Settingsを参照]、または追加したリダイレクトURL[同じくAuth→Settings]のいずれかに一致しなければなりません)。

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

スコープを使ってサインイン

OAuthプロバイダーから追加のデータが必要な場合は、スペースで区切ったスコープのリストをリクエストに含めることで、OAuthプロバイダーのトークンを返してもらうことができます。 また、プロバイダーによっては、プロバイダーのOAuthアプリの設定でスコープを指定する必要があります。

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

リフレッシュトークンを使ってサインイン(React Nativeの場合など)

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