mirror of
https://github.com/lobehub/lobehub
synced 2026-04-21 17:47:27 +00:00
109 lines
5.5 KiB
Text
109 lines
5.5 KiB
Text
---
|
||
title: 旧版身份验证(NextAuth 和 Clerk)
|
||
description: 关于 NextAuth 和 Clerk 等旧版身份验证方法的文档。对于新部署,我们建议使用 Better Auth。
|
||
tags:
|
||
- 身份验证服务
|
||
- Next Auth
|
||
- Clerk
|
||
- 旧版
|
||
---
|
||
|
||
# 旧版身份验证
|
||
|
||
<Callout type={'warning'}>
|
||
**旧版提示**:NextAuth 和 Clerk 是旧版身份验证方案。对于新部署,我们强烈建议使用 [Better Auth](/zh/docs/self-hosting/advanced/auth),它更简洁、更灵活。
|
||
</Callout>
|
||
|
||
本页面为仍在使用这些服务的用户提供旧版身份验证方案(NextAuth 和 Clerk)的文档。
|
||
|
||
## Clerk
|
||
|
||
Clerk 是一个全面的身份验证解决方案,它提供了简单而强大的 API 和服务来处理用户认证和会话管理。
|
||
|
||
LobeChat 与 Clerk 做了深度集成,能够为用户提供安全、便捷的登录和注册体验。
|
||
|
||
在 LobeChat 的环境变量中设置 `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` 和 `CLERK_SECRET_KEY`,即可开启和使用 Clerk。
|
||
|
||
<Callout type={'info'}>
|
||
详细的 Clerk 配置请参阅 [Clerk 配置指南](/zh/docs/self-hosting/advanced/auth/clerk)。
|
||
</Callout>
|
||
|
||
<Callout type={'tip'}>
|
||
如需从 Clerk 迁移到 Better Auth,请参阅 [Clerk 迁移指南](/zh/docs/self-hosting/advanced/auth/clerk-to-betterauth)。
|
||
</Callout>
|
||
|
||
## Next Auth
|
||
|
||
<Callout type={'tip'}>
|
||
如需从 NextAuth 迁移到 Better Auth,请参阅 [NextAuth 迁移指南](/zh/docs/self-hosting/advanced/auth/nextauth-to-betterauth)。
|
||
</Callout>
|
||
|
||
在使用 NextAuth 之前,请先在 LobeChat 的环境变量中设置以下变量:
|
||
|
||
| 环境变量 | 类型 | 描述 |
|
||
| -------------------------------- | -- | ------------------------------------------------------------------------------------------------------------ |
|
||
| `NEXT_PUBLIC_ENABLE_NEXT_AUTH` | 必选 | 用于启用 NextAuth 服务,设置为 `1` 以启用,更改此项需要重新编译应用。使用 `lobehub/lobe-chat-database` 镜像部署的用户已经默认添加了该项配置。 |
|
||
| `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/advanced/auth/next-auth/auth0'} title={'Auth0'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/microsoft-entra-id'} title={'Microsoft Entra ID'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/authentik'} title={'Authentik'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/github'} title={'Github'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/zitadel'} title={'ZITADEL'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/cloudflare-zero-trust'} title={'Cloudflare Zero Trust'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/authelia'} title={'Authelia'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/logto'} title={'Logto'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/auth/next-auth/keycloak'} title={'Keycloak'} />
|
||
|
||
<Card href={'/zh/docs/self-hosting/advanced/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` | |
|
||
|
||
## 额外功能
|
||
|
||
### Webhook 支持
|
||
|
||
允许 LobeChat 在身份提供商中用户信息更新时接收通知。支持的提供商包括 Casdoor 和 Logto。请参考具体提供商文档进行配置。
|
||
|
||
### 数据库会话
|
||
|
||
允许会话存储在数据库中,详情请参阅 [Auth.js 会话文档](https://authjs.dev/concepts/session-strategies#database-session)。
|
||
|
||
## 其他 SSO 提供商
|
||
|
||
请参考 [NextAuth.js](https://next-auth.js.org/providers) 文档,欢迎提交 Pull Request。
|