You need to enable JavaScript to run this app.
文档中心
AI 原生 BaaS 平台 Supabase 版

AI 原生 BaaS 平台 Supabase 版

复制全文
下载 pdf
使用 Authentication
设置基于邮件的注册和登录
复制全文
下载 pdf
设置基于邮件的注册和登录
本文介绍通过 Supabase 控制台和 Admin API 配置为应用配置邮件登录的操作流程。​
前提条件​
  • 已创建使用 Supabase 引擎的 Workspace 且 Workspace 的状态为运行中。关于创建 Workspace 的更多详细信息,请参见创建 Workspace。​
  • 已通过目标 Workspace 成功登录 Supabase 控制台。关于登录控制台的详细信息,请参见登录 Supabase 控制台。​
  • 已获取 SUPABASE_BASE_URL、SERVICE_ROLE_KEY和 SUPABASE_ANON_KEY。关于获取变量的详细信息,请参见获取变量。​
在 Supabase 控制台查询和修改配置​
  1. 完成邮件登录设置​
  1. 在 Supabase 控制台单击左侧的 Authentication,进入 Authentication 页面。​
  1. 在 Authentication 页面,单击 Configuration > Emails,进入 Emails 页面。​
  1. 在 Emails 页面,分别进行邮件登陆和邮件模板的设置。​
  • 单击 SMTP Settings 页签,打开 Enable Custom SMTP 开关后,进行邮件登录的相关配置。​
  • (可选)单击 Templates,查看和修改各类邮件模版。Supabase 提供了默认模版,可对其进行自定义修改。模版可以通过 {{ }} 形式引用变量,如 {{ .ConfirmationURL }}。​
  1. 设置是否需要校验邮箱。​
  1. 在 Supabase 控制台单击左侧的 Authentication,进入 Authentication 页面。​
  1. 在 Authentication 页面,单击 Configuration > Sign In / Providers,进入 Sign In / Providers 页面。​
  1. 在 Sign In / Providers 页面的 User Signups 区域,打开 Confirm email 开关后,单击 Save changes。​
主要配置项说明​
​
Dashobard 配置项名称​
配置项 Key​
配置项 Value 类型​
是否必填​
配置项说明​
Sender email​
SMTP_ADMIN_EMAIL​
​
string​
是​
发送者 Email。​
Sender name​
SMTP_SENDER_NAME​
string​
是​
发送者名称​
Host​
SMTP_HOST​
string​
是​
SMTP 服务器地址​
Port number​
SMTP_PORT​
string​
是​
SMTP 服务器端口。必须是有效的端口数字字符串,如“465”或“587”​
Minimum interval between emails being sent​
SMTP_MAX_FREQUENCY​
int​
否​
​
邮件发送最小间隔。默认值为 60,单位为秒。​
Username​
SMTP_USER​
string​
是​
SMTP 服务器用户名​
Password​
SMTP_PASS​
string​
是​
SMTP 服务器密码​
Confirm email​
MAILER_AUTOCONFIRM​
bool​
否​
​
是否需要用户验证邮箱。取值:​
  • true:无需验证(开关关闭),默认值​
  • false:需要验证(开关打开)​
​
通过 Admin API 查询和修改配置​
上述参数可以通过 Auth 模块的 Admin API /auth/v1/config 进行查询和修改配置。​
  • 查询配置的示例​
​
curl -X GET $SUPABASE_BASE_URL/auth/v1/config \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json"​
​
  • 修改配置的示例,其中 body 为上节表格中的 配置项 Key 和 配置项 Value 组成的 JSON Map​
​
curl -X PATCH $SUPABASE_BASE_URL/auth/v1/config \​
-H "apikey: ${SERVICE_ROLE_KEY}" \​
-H "Authorization: Bearer ${SERVICE_ROLE_KEY}" \​
-H "Content-Type: application/json" \​
-d '{​
"SMTP_ADMIN_EMAIL": true,​
"SMTP_SENDER_NAME": "test-sender",​
"SMTP_HOST": "smtp.qq.com",​
"SMTP_PORT": "465",​
"SMTP_USER": "test-user",​
"SMTP_PASS": "test-pwd",​
"MAILER_AUTOCONFIRM": false,​
...​
}'​
​
示例——通过 Supabase Client SDK 进行邮箱注册和登录的示例​
  • 邮箱注册的示例​
​
import { createClient } from '@supabase/supabase-js'​
const supabase = createClient(​
"<SUPABASE_BASE_URL>",​
"<SUPABASE_ANON_KEY>")​
​
// 邮箱注册​
async function signUp() {​
const { data, error } = await supabase.auth.signUp({​
email: 'user@example.com',​
password: 'password123'​
})​
​
if (error) {​
console.log('注册失败:', error.message)​
return​
}​
console.log('注册成功,请查收邮箱验证', data)​
}​
​
  • 邮箱登录的示例​
​
import { createClient } from '@supabase/supabase-js'​
const supabase = createClient(​
"<SUPABASE_BASE_URL>",​
"<SUPABASE_ANON_KEY>")​
​
// 账号密码登录​
async function signIn() {​
const { data, error } = await supabase.auth.signInWithPassword({​
email: 'user@example.com',​
password: 'password123'​
})​
​
if (error) {​
console.log('登录失败:', error.message)​
return​
}​
console.log('登录成功', data.user)​
}​
​
最近更新时间:2026.04.02 20:12:42
这个页面对您有帮助吗?
有用
有用
无用
无用