docs/self-hosting/auth/legacy.zh-CN.mdx
<Callout type={'warning'}> 旧版提示:NextAuth 和 Clerk 是旧版身份验证方案。对于新部署,我们强烈建议使用 Better Auth,它更简洁、更灵活。 </Callout>
本页面为仍在使用这些服务的用户提供旧版身份验证方案(NextAuth 和 Clerk)的文档。
Clerk 是一个全面的身份验证解决方案,它提供了简单而强大的 API 和服务来处理用户认证和会话管理。
LobeHub 与 Clerk 做了深度集成,能够为用户提供安全、便捷的登录和注册体验。
在 LobeHub 的环境变量中设置 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY 和 CLERK_SECRET_KEY,即可开启和使用 Clerk。
<Callout type={'info'}> 详细的 Clerk 配置请参阅 Clerk 配置指南。 </Callout>
<Callout type={'tip'}> 如需从 Clerk 迁移到 Better Auth,请参阅 Clerk 迁移指南。 </Callout>
<Callout type={'tip'}> 如需从 NextAuth 迁移到 Better Auth,请参阅 NextAuth 迁移指南。 </Callout>
在使用 NextAuth 之前,请先在 LobeHub 的环境变量中设置以下变量:
| 环境变量 | 类型 | 描述 |
|---|---|---|
NEXT_PUBLIC_ENABLE_NEXT_AUTH | 必选 | 用于启用 NextAuth 服务,设置为 1 以启用,更改此项需要重新编译应用。使用 lobehub/lobehub 镜像部署的用户已经默认添加了该项配置。 |
NEXT_AUTH_SECRET | 必选 | 用于加密 Auth.js 会话令牌的密钥。您可以使用以下命令: openssl rand -base64 32,或者访问 https://generate-secret.vercel.app/32 生成秘钥。 |
AUTH_URL | 必选 | 该 URL 用于指定 Auth.js 在执行 OAuth 验证时的回调地址,当默认生成的重定向地址发生不正确时才需要设置。https://example.com/api/auth |
NEXT_AUTH_SSO_PROVIDERS | 可选 | 该环境变量用于同时启用多个身份验证源,以逗号 , 分割,例如 auth0,microsoft-entra-id,authentik。 |
NEXT_AUTH_SSO_SESSION_STRATEGY | 可选 | Auth.js 的会话策略。选项为 jwt 或 database。默认值为 jwt。 |
目前支持的身份验证服务有:
<Cards> <Card href={'/zh/docs/self-hosting/auth/next-auth/auth0'} title={'Auth0'} /><Card href={'/zh/docs/self-hosting/auth/next-auth/microsoft-entra-id'} title={'Microsoft Entra ID'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/authentik'} title={'Authentik'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/github'} title={'Github'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/zitadel'} title={'ZITADEL'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/cloudflare-zero-trust'} title={'Cloudflare Zero Trust'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/authelia'} title={'Authelia'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/logto'} title={'Logto'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/keycloak'} title={'Keycloak'} />
<Card href={'/zh/docs/self-hosting/auth/next-auth/okta'} title={'Okta'} /> </Cards>
点击即可查看对应平台的配置文档。
同时启用多个身份验证源请设置 NEXT_AUTH_SSO_PROVIDERS 环境变量,以逗号 , 分割,例如 auth0,microsoft-entra-id,authentik。
顺序为 SSO 提供商的显示顺序。
| SSO 提供商 | 值 | 额外功能 |
|---|---|---|
| Auth0 | auth0 | |
| Authenlia | authenlia | |
| Authentik | authentik | |
| Casdoor | casdoor | Webhook |
| Cloudflare Zero Trust | cloudflare-zero-trust | |
| Github | github | |
| Logto | logto | Webhook |
| Microsoft Entra ID | microsoft-entra-id | |
| ZITADEL | zitadel | |
| Keycloak | keycloak | |
| Okta | okta |
允许 LobeHub 在身份提供商中用户信息更新时接收通知。支持的提供商包括 Casdoor 和 Logto。请参考具体提供商文档进行配置。
允许会话存储在数据库中,详情请参阅 Auth.js 会话文档。
请参考 NextAuth.js 文档,欢迎提交 Pull Request。