Mkdirs Docs
配置环境

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_IDAUTH_GITHUB_SECRET 变量。

按照 这里 的步骤,从 GitHub Developer Settings上,获取 client_idclient_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 应用程序。

GitHub Client

[可选] 获取 Google 客户端变量

如果您想使用 Google 作为 OAuth 提供商,您需要更新 AUTH_GOOGLE_IDAUTH_GOOGLE_SECRET 变量。

您可以从 Google Cloud Console 获取 client_idclient_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 应用程序。

Google Client

  1. 请注意,环境变量在开发环境和生产环境中是不同的,请确保为生产环境和开发环境创建两个不同的 OAuth 应用程序。

  2. 如果您仍然遇到身份验证问题,例如 redirect_uri_mismatch 或其他问题,您可以尝试将以下环境变量添加到 .env 文件中,这2个环境变量一般仅在生产环境中设置即可。

    # .env
    AUTH_TRUST_HOST=true
    AUTH_URL=https://your-domain.com/api/auth
  3. 如果本地验证 Google 登录或者 Github 登录出现问题,请确保 VPN 代理已开启,并且开启 Tune 模式。如果还不行,请参考这个 Gist进行代理配置。如果还不行,请尝试直接线上部署,直接在线上确认是否还有问题。资料来源

视频教程

视频教程有2个版本,一个是开发者教程,一个是初学者教程,请根据自己的实际情况选择观看。

配置 Authjs 环境变量 - 开发者教程

配置 Authjs 环境变量 - 初学者教程

Next Auth V5 教程

如果您对 Next Auth V5 感兴趣,可以参考以下视频教程,它是一个更高级更全面的 Next Auth V5 指南,比官方文档好得多。

延伸阅读

最后更新于

本页目录