Tinyship
Tinyship
 Tinyship
Tinyship
TinyShip 文档中心
TinyShip 用户指南快速开始基础配置
身份认证配置指南邮箱密码认证配置Google OAuth 配置GitHub OAuth 配置微信扫码登录配置短信验证登录配置
积分系统配置指南
存储服务配置验证码配置
用户指南身份认证

邮箱密码认证配置

配置邮箱验证和邮件发送功能

邮箱密码认证是默认启用的认证方式,本文档介绍如何配置邮箱验证和邮件发送功能。

核心特性

邮箱密码认证包含以下功能:

  • ✅ 用户注册,支持邮箱验证
  • ✅ 用户登录,支持"记住我"功能
  • ✅ 密码重置功能
  • ✅ 账户恢复选项
  • ✅ 安全的会话管理

邮箱验证配置

默认情况下,系统要求新用户验证邮箱不需要验证就可以使用。你可以在 config/auth.ts 中开启此功能:

// config/auth.ts
// 当设置为 true 的时候,系统会在新用户注册的时候发送验证邮件
// 并且假如用户邮箱没有验证,登录以后没有验证的警告
// 设置为 false 以后,用户注册没有任何限制
export const authConfig = {
  requireEmailVerification: true,
  // ...其他认证配置
}

这里强烈建议在线上设置为 true,它通过确认电子邮件地址属于用户来帮助防止垃圾邮件和滥用,也是大多数网站的默认方式。

邮件服务配置

假如你将 requireEmailVerification 设置为 true,认证系统会自动发送验证邮件和密码重置邮件。这个时候你就需要接入邮件服务。

Resend 配置

现在推荐选用 Resend:

设置步骤

  1. 访问 Resend 注册账号
  2. 验证你的发送域名
  3. 获取 API Key

环境变量配置

RESEND_API_KEY="re_123456789_abcdefghijklmnop"
# 默认发送邮件地址, 按照你验证的网址进行配置, 这里你需要任意一个域名进行验证
EMAIL_DEFAULT_FROM="noreply@tinyship.cn"

修改配置文件

config/email.ts

export const emailConfig = {
  /**
   * 默认 email 发送提供商
   */
  defaultProvider: 'resend',
  // ...其他配置
}

配置完毕以后应该就在注册的时候成功的发送验证邮件了。

开发环境建议

开发环境建议: 在本地开发时,调试成功以后,建议先注释掉邮件发送代码,如果想获得最终的数据,我们的代码中已经将它添加到一个临时字段中:

// 开发环境:将验证链接存储到 context 中,通过 hooks 返回
if (process.env.NODE_ENV === 'development') {
  // 将验证链接存储到全局上下文中,hooks 可以访问
  (request as any).context = (request as any).context || {};
  (request as any).context.verificationUrl = url;
  console.log('[DEVELOPMENT MODE] Verification URL stored in context:', url);
}

你可以查看 network,将对应的 url 复制出来,然后在浏览器中打开即可,在生产环境再启用。

扩展邮件功能

除了认证邮件,你还可以扩展邮件服务用于:

  • 欢迎邮件
  • 营销邮件
  • 🔔 通知邮件
  • 📊 系统报告
  • 🚨 安全警报

详细配置请参考:libs/email/README.md


返回 认证配置概览

身份认证配置指南

TinyShip 身份认证系统配置指南

Google OAuth 配置

配置 Google 账号登录

On this page

核心特性邮箱验证配置邮件服务配置Resend 配置设置步骤环境变量配置修改配置文件开发环境建议扩展邮件功能