Auth
如何配置 Authjs 相关环境变量。
Mkdirs 使用 Auth.js v5 进行身份认证,支持邮箱+密码、GitHub、Google 三种认证方式。
配置
生成 AUTH_SECRET 变量
AUTH_SECRET 是一个随机值,您可以通过运行以下命令生成一个:
npx auth secret
# or
openssl rand -base64 32然后将它设置到 .env 文件中。
# .env
# [required]
AUTH_SECRET=secret[可选] 获取 GitHub 客户端变量
如果您想使用 GitHub 作为 OAuth 提供商,您需要更新 AUTH_GITHUB_ID 和 AUTH_GITHUB_SECRET 变量。
按照 这里 的步骤,从 GitHub Developer Settings上,获取 client_id 和 client_secret。
对于回调 URL,在线上环境下,它是 https://your-domain.com/api/auth/callback/github,在本地开发环境下,它是 http://localhost:3000/api/auth/callback/github。
# .env
# [only required if you want to support GitHub authentication]
AUTH_GITHUB_ID = your_secret_client_id
AUTH_GITHUB_SECRET = your_secret_client请在 GitHub 开发者设置中创建两个不同的 OAuth 应用程序,一个用于生产环境,一个用于开发环境。 不要在两个环境中使用相同的 OAuth 应用程序。

[可选] 获取 Google 客户端变量
如果您想使用 Google 作为 OAuth 提供商,您需要更新 AUTH_GOOGLE_ID 和 AUTH_GOOGLE_SECRET 变量。
您可以从 Google Cloud Console 获取 client_id 和 client_secret。
对于回调 URL,在线上环境下,它是 https://your-domain.com/api/auth/callback/google,在本地开发环境下,它是 http://localhost:3000/api/auth/callback/google。
# .env
# [only required if you want to support Google authentication]
AUTH_GOOGLE_ID = your_secret_client_id.apps.googleusercontent.com
AUTH_GOOGLE_SECRET = your_secret_client请在 Google Cloud Console 中创建两个不同的 OAuth 应用程序,一个用于线上环境,一个用于本地开发环境。 不要在两个不同的环境中,使用相同的 OAuth 应用程序。

-
请注意,环境变量在开发环境和生产环境中是不同的,请确保为生产环境和开发环境创建两个不同的 OAuth 应用程序。
-
如果您仍然遇到身份验证问题,例如
redirect_uri_mismatch或其他问题,您可以尝试将以下环境变量添加到.env文件中,这2个环境变量一般仅在生产环境中设置即可。# .env AUTH_TRUST_HOST=true AUTH_URL=https://your-domain.com/api/auth -
如果本地验证 Google 登录或者 Github 登录出现问题,请确保 VPN 代理已开启,并且开启 Tune 模式。如果还不行,请参考这个 Gist进行代理配置。如果还不行,请尝试直接线上部署,直接在线上确认是否还有问题。资料来源
视频教程
视频教程有2个版本,一个是开发者教程,一个是初学者教程,请根据自己的实际情况选择观看。
配置 Authjs 环境变量 - 开发者教程
配置 Authjs 环境变量 - 初学者教程
Next Auth V5 教程
如果您对 Next Auth V5 感兴趣,可以参考以下视频教程,它是一个更高级更全面的 Next Auth V5 指南,比官方文档好得多。
延伸阅读
最后更新于
