Sign in a user through OTP
Log in a user using magiclink or a one-time password (OTP).
- Requires either an email or phone number.
- This method is used for passwordless sign-ins where a OTP is sent to the user's email or phone number.
- If the user doesn't exist,
signInWithOtp()
will signup the user instead. To restrict this behaviour, you can setshouldCreateUser
inSignInWithPasswordlessCredentials.options
tofalse
. - If you're using an email, you can configure whether you want the user to receive a magiclink or a OTP.
- If you're using phone, you can configure whether you want the user to receive a OTP.
- The magic link's destination URL is determined by the
SITE_URL
. - See redirect URLs and wildcards to add additional redirect URLs to your project.
- Magic links and OTPs share the same implementation. To send users a one-time code instead of a magic link, modify the magic link email template to include
{{ .Token }}
instead of{{ .ConfirmationURL }}
. - See our Twilio Phone Auth Guide for details about configuring WhatsApp sign in.
Parameters
- credentialsREQUIREDSignInWithPasswordlessCredentials
const { data, error } = await supabase.auth.signInWithOtp({
email: 'example@email.com',
options: {
emailRedirectTo: 'https://example.com/welcome'
}
})