跳转到内容

Auth

Mkdirs 使用 Auth.js v5 进行身份认证,支持邮箱+密码、GitHub、Google 三种认证方式。

配置

  1. 生成 AUTH_SECRET 变量

    AUTH_SECRET 是一个随机值,您可以通过运行以下命令生成一个:

    Terminal window
    npx auth secret
    # or
    openssl rand -base64 32

    然后将它设置到 .env 文件中。

    .env
    # [required]
    AUTH_SECRET=secret
  2. [可选] 获取 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 Client

  3. [可选] 获取 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 Client

特别注意

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

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

    .env
    AUTH_TRUST_HOST=true
    AUTH_URL=https://your-domain.com/api/auth

视频教程

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

延伸阅读