认证(Authentication)

RDS Supabase的认证模块(Authentication)提供了一个功能全面的用户管理系统,支持多种认证方式,并可作为独立模块集成至您的应用程序中。

基本操作

创建新用户

  1. 邮箱注册。

    要启用邮箱注册功能,您首先需要在阿里云控制台的Supabase Auth配置中设置您的邮件服务器(SMTP)信息。这需要配置以下参数:

    GOTRUE_SMTP_PORT
    GOTRUE_EXTERNAL_EMAIL_ENABLED
    GOTRUE_SMTP_SENDER_NAME
    GOTRUE_SMTP_USER
    GOTRUE_SMTP_PASS
    GOTRUE_SMTP_ADMIN_EMAIL
    GOTRUE_SMTP_HOST
    GOTRUE_MAILER_AUTOCONFIRM
    GOTRUE_SITE_URL
    API_EXTERNAL_URL

    配置完成后,通过以下方法调用:

    const { data, error } = await supabase.auth.signUp({
      email: 'example@email.com',
      password: 'example-password',
    })
  2. 手机号注册。

    要启用短信(SMS)注册,您需要配置一个SMS发送服务的Webhook。Supabase将调用此Hook来发送验证短信。请在阿里云控制台配置以下参数:

    GOTRUE_HOOK_SEND_SMS_ENABLED
    GOTRUE_HOOK_SEND_SMS_URI
    GOTRUE_HOOK_SEND_SMS_SECRETS

    配置完成后,通过以下方法调用:

    const { data, error } = await supabase.auth.signUp({
      phone: '1381111****',
      password: 'example-password',
      options: {
        channel: 'sms'
      }
    })

登录用户

使用邮箱和密码,或手机号和密码来登录用户。

// 邮箱登录
const { data, error } = await supabase.auth.signInWithPassword({
  email: 'example@email.com',
  password: 'example-password',
})

// 手机号登录
const { data, error } = await supabase.auth.signInWithPassword({
  phone: '+1381111****',
  password: 'some-password',
})

更新用户

更新已登录用户的个人信息。请注意,用户必须处于登录状态才能调用 updateUser() 方法。

// 更新邮箱
const { data, error } = await supabase.auth.updateUser({
  email: 'new****@email.com'
})

// 更新密码
const { data, error } = await supabase.auth.updateUser({
  password: 'new password'
})

注销用户

注销当前登录的用户。

const { error } = await supabase.auth.signOut()

相关文档

  • 了解更多Supabase认证的详细信息,请参见Auth

  • Supabase JavaScript SDK请参见JavaScript

  • 手机号登录更多信息请参见phone-login

  • SMS Hook更多信息请参见SMS Hook