RDS Supabase的认证模块(Authentication)提供了一个功能全面的用户管理系统,支持多种认证方式,并可作为独立模块集成至您的应用程序中。
基本操作
创建新用户
邮箱注册。
要启用邮箱注册功能,您首先需要在阿里云控制台的Supabase Auth配置中设置您的邮件服务器(SMTP)信息。这需要配置以下参数:
GOTRUE_SMTP_PORT # SMTP端口:发送邮件使用的SMTP服务器端口号(如587、465) GOTRUE_EXTERNAL_EMAIL_ENABLED # 启用外部邮箱登录:是否允许用户使用电子邮件进行注册和登录 GOTRUE_SMTP_SENDER_NAME # 邮件发件人姓名:显示在邮件中的发件人名称(例如:"Supabase 支持团队") GOTRUE_SMTP_USER # SMTP用户名:用于登录SMTP服务器的用户名(通常是邮箱地址) GOTRUE_SMTP_PASS # SMTP密码:用于登录SMTP服务器的密码或应用专用密码 GOTRUE_SMTP_ADMIN_EMAIL # 管理员邮箱:系统邮件的管理员收件邮箱或发件邮箱地址 GOTRUE_SMTP_HOST # SMTP主机:SMTP服务器地址(如smtp.gmail.com 或 smtp.mailgun.org) GOTRUE_MAILER_AUTOCONFIRM # 邮箱自动确认:是否跳过邮箱验证,自动确认用户(开发环境常用) GOTRUE_SITE_URL # 网站前端地址:用户操作后重定向的目标前端页面URL(如密码重置后跳转) API_EXTERNAL_URL # API外部访问地址:外部可访问的API地址(如 https://api.xxx.com),用于回调或通知配置完成后,通过以下方法调用:
const { data, error } = await supabase.auth.signUp({ email: 'example@email.com', password: 'example-password', })手机号注册。
要启用短信(SMS)注册,您需要配置一个SMS发送服务的Webhook。Supabase将调用此Hook来发送验证短信。请在阿里云控制台配置以下参数:
GOTRUE_HOOK_SEND_SMS_ENABLED # 是否开启SMS短信发送功能 GOTRUE_HOOK_SEND_SMS_URI # 需要提供一个发送确认短信的https服务地址 GOTRUE_HOOK_SEND_SMS_SECRETS # 是一个hook的密钥,有格式要求,以v1,whsec_开头的base64编码配置完成后,通过以下方法调用:
const { data, error } = await supabase.auth.signUp({ phone: '1381111****', password: 'example-password', options: { channel: 'sms' } })支付宝认证。
要启用支付宝登录,您需要在阿里云控制台的Supabase Auth配置中设置以下参数:
GOTRUE_EXTERNAL_ALIPAY_ENABLED # 是否启用支付宝登录 GOTRUE_EXTERNAL_ALIPAY_CLIENT_ID # 支付宝应用的 AppID GOTRUE_EXTERNAL_ALIPAY_SECRET # 支付宝应用的 AppSecret GOTRUE_EXTERNAL_ALIPAY_REDIRECT_URI # 授权回调地址;格式:http(s)://your-supabase-url/auth/v1/callback配置完成后,通过以下方法调用:
const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'alipay', })微信认证。
要启用微信登录,您需要在阿里云控制台的Supabase Auth配置中设置以下参数:
GOTRUE_EXTERNAL_WECHAT_ENABLED # 是否启用微信登录 GOTRUE_EXTERNAL_WECHAT_CLIENT_ID # 微信应用的 AppID GOTRUE_EXTERNAL_WECHAT_SECRET # 微信应用的 AppSecret GOTRUE_EXTERNAL_WECHAT_REDIRECT_URI # 授权回调地址;格式:http(s)://your-supabase-url/auth/v1/callback配置完成后,通过以下方法调用:
const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'wechat', })谷歌认证。
要启用谷歌登录,您需要在阿里云控制台的Supabase Auth配置中设置以下参数:
GOTRUE_EXTERNAL_GOOGLE_ENABLED # 是否启用谷歌登录 GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID # 谷歌OAuth 客户端 ID GOTRUE_EXTERNAL_GOOGLE_SECRET # 谷歌OAuth 客户端密钥 GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI # 授权回调地址;格式:http(s)://your-supabase-url/auth/v1/callback配置完成后,通过以下方法调用:
const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'google', })GitHub认证。
要启用GitHub登录,您需要在阿里云控制台的Supabase Auth配置中设置以下参数:
GOTRUE_EXTERNAL_GITHUB_ENABLED # 是否启用GITHUB登录 GOTRUE_EXTERNAL_GITHUB_CLIENT_ID # GitHub OAuth App 的 Client ID GOTRUE_EXTERNAL_GITHUB_SECRET # GitHub OAuth App 的 Client Secret GOTRUE_EXTERNAL_GITHUB_REDIRECT_URI # 授权回调地址;格式:http(s)://your-supabase-url/auth/v1/callback配置完成后,通过以下方法调用:
const { data, error } = await supabase.auth.signInWithOAuth({ provider: 'github', })
登录用户
使用邮箱和密码,或手机号和密码,或支付宝认证第三方认证来登录用户。
// 邮箱登录
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',
})
// OAuth 第三方登录
const { data, error } = await supabase.auth.signInWithOAuth({
provider: 'provider_name'
})
// provider 可选值:
// 'alipay' - 支付宝登录
// 'wechat' - 微信登录
// 'google' - 谷歌登录
// 'github' - GitHub登录更新用户
更新已登录用户的个人信息。请注意,用户必须处于登录状态才能调用 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。
该文章对您有帮助吗?