signIn()
Log in an existing user, or login via a third-party provider.
- JavaScript
const { user, session, error } = await supabase.auth.signIn({
email: 'example@email.com',
password: 'example-password',
})
Parameters
__namedParametersrequired
UserCredentials
No description provided.
optionsrequired
object
No description provided.
captchaTokenoptional
string
No description provided.
queryParamsoptional
object
No description provided.
redirectTooptional
string
No description provided.
scopesoptional
string
No description provided.
shouldCreateUseroptional
boolean
No description provided.
Properties
Notes
- ユーザーはメールかOAuthでサインアップできます。
password
を指定せずにemail
を指定した場合、ユーザーにはマジック・リンクが送られます。- マジック・リンクの送信先URLは、SITE_URLという設定変数で決まります。これを変更するには、app.supabase.comの「Authentication」→「Settings」で行います。
provider
を指定すると、ブラウザーで関連するログイン・ページを開きます。
Examples
Eメールでサインイン
- JavaScript
const { user, session, error } = await supabase.auth.signIn({
email: 'example@email.com',
password: 'example-password',
})
マジック・リンクでサインイン
パスワードが入力されていない場合、ユーザーのメールアドレスに「マジック・リンク」が送信されます。このリンクをクリックすることで、有効なセッションでアプリケーションを開くことができます。デフォルトでは、ユーザーは60秒に1回しかマジックリンクを要求できません。
- JavaScript
const { user, session, error } = await supabase.auth.signIn({
email: 'example@email.com'
})
サードパーティのプロバイダーを使用してサインイン
Supabaseは多くの様々なサードパーティのプロバイダをサポートします。
- JavaScript
const { user, session, error } = await supabase.auth.signIn({
// provider can be 'github', 'google', 'gitlab', and more
provider: 'github'
})
電話番号でサインイ
Supabaseは電話番号による認証をサポートしています。
- JavaScript
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]のいずれかに一致しなければなりません)。
- JavaScript
const { user, session, error } = await supabase.auth.signIn({
provider: 'github'
}, {
redirectTo: 'https://example.com/welcome'
})
スコープを使ってサインイン
OAuthプロバイダーから追加のデータが必要な場合は、スペースで区切ったスコープのリストをリクエストに含めることで、OAuthプロバイダーのトークンを返してもらうことができます。 また、プロバイダーによっては、プロバイダーのOAuthアプリの設定でスコープを指定する必要があります。
- JavaScript
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アプリでサインアップやログインを完了する場合は、プロバイダーから取得したリフレッシュトークンを渡してセッションを取得できます。
- JavaScript
// 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,
});
});