Back to Lobehub

旧版身份验证(NextAuth 和 Clerk)

docs/self-hosting/auth/legacy.zh-CN.mdx

2.1.565.2 KB
Original Source

旧版身份验证

<Callout type={'warning'}> 旧版提示:NextAuth 和 Clerk 是旧版身份验证方案。对于新部署,我们强烈建议使用 Better Auth,它更简洁、更灵活。 </Callout>

本页面为仍在使用这些服务的用户提供旧版身份验证方案(NextAuth 和 Clerk)的文档。

Clerk

Clerk 是一个全面的身份验证解决方案,它提供了简单而强大的 API 和服务来处理用户认证和会话管理。

LobeHub 与 Clerk 做了深度集成,能够为用户提供安全、便捷的登录和注册体验。

在 LobeHub 的环境变量中设置 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEYCLERK_SECRET_KEY,即可开启和使用 Clerk。

<Callout type={'info'}> 详细的 Clerk 配置请参阅 Clerk 配置指南</Callout>

<Callout type={'tip'}> 如需从 Clerk 迁移到 Better Auth,请参阅 Clerk 迁移指南</Callout>

Next Auth

<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 的会话策略。选项为 jwtdatabase。默认值为 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 提供商额外功能
Auth0auth0
Authenliaauthenlia
Authentikauthentik
CasdoorcasdoorWebhook
Cloudflare Zero Trustcloudflare-zero-trust
Githubgithub
LogtologtoWebhook
Microsoft Entra IDmicrosoft-entra-id
ZITADELzitadel
Keycloakkeycloak
Oktaokta

额外功能

Webhook 支持

允许 LobeHub 在身份提供商中用户信息更新时接收通知。支持的提供商包括 Casdoor 和 Logto。请参考具体提供商文档进行配置。

数据库会话

允许会话存储在数据库中,详情请参阅 Auth.js 会话文档

其他 SSO 提供商

请参考 NextAuth.js 文档,欢迎提交 Pull Request。