feat: 记录 Auth.js 电子邮件 (魔术链接) 提供程序 + 本地电子邮件测试
作者: tsokolovs创建于 2026年7月27日更新于 2026年7月27日
标签🌟 enhancement
你的功能请求是否与问题有关?请描述。 NextAuth.js 文档和架构化应用程序讲述了 Discord OAuth 提供程序。 src/server/auth/config.ts 文件包含 DiscordProvider 和 // ... 在这里添加更多提供程序,而 NextAuth.js 使用文档包含了关于 Discord 配置、会话、tRPC、数据库适配器和中间件的说明 – 但不包括 Email/magic link 提供程序。 这给想要使用无密码电子邮件登录的每个人留下了一个实际问题: 1. 首先,Email 提供程序与 OAuth 提供程序有很大不同 – 它需要一个数据库适配器(用于 VerificationToken 模型,创建 t3-app 可在选择 Prisma 或 Drizzle 选项时设置),以及一个 SMTP 服务器来发送登录链接。 这些都没有在文档中提到 – 人们将不得不退出 T3 文档,从 Auth.js 文档中查找相关信息。 2. 即使设置完成后,也没有关于如何在本地测试的指导。 人们当然不希望在开发中发送电子邮件,而且许多其他生态系统默认都包含本地 SMTP 服务器(例如 Laravel Sail、Symfony、cookiecutter-django),但这里没有提及类似的工作流程。 大多数新用户在"在开发中这些电子邮件实际发送到哪里?"时就卡住了。 ### 描述你希望看到的解决方案 1. 添加提供程序 – 简短代码段,其中添加了 Auth.js 的 Email 提供程序到提供程序数组中,并提到它需要一个数据库适配器(Prisma/Drizzle 选项已经提供了验证令牌模型),以及相关的 .env 和 src/env.js 文件来配置 SMTP 设置。 2. 在本地测试电子邮件 – 一个单独的"在本地测试电子邮件"部分,其中描述了如何更改提供程序的 SMTP 设置,以便在开发期间将电子邮件链接发送到本地收件箱,从而使魔术链接在本地发送,而不是真正发送。 可以使用任何单二进制、MIT 许可的 SMTP "捕获器"来实现这一点,例如 Docker 运行命令和无需注册,例如 Mailtrap Local。 这将遵循当前文档风格("这里是如何添加另一个提供程序"),就像在 Discord 部分中一样,并且将填补一些额外的基础设施。 ### 描述替代方案 - 仅包含本地测试说明 – 省略对提供程序本身的描述,仅提供"在本地测试电子邮件"提示。 似乎提供程序设置是最困难的部分。 - 保持原样 – 让人们去 Auth.js 文档,并且根本不提及它。 这就是当前的情况 – 它可以正常工作,但 SMTP 要求正是使 T3 专用的原因。 ### 附加信息 如果这是你希望看到的内容,我很乐意提交 PR。根据贡献指南,我将首先创建一个问题,提出建议。
内容来源: t3-oss/create-t3-app