文档/ 后端即服务/ 身份认证(Logto)

身份认证(Logto)

符合 OIDC 标准的托管身份认证,支持社交登录、JWT 令牌,并提供功能完备的管理控制台。

创建认证服务器

创建新的认证实例:

  1. 在 sh0 控制台中进入 Auth Servers 部分。
  2. 点击 Create Auth Server。
  3. 为认证实例输入名称(例如“my-app-auth”)。
  4. 选择要连接的 PostgreSQL 数据库服务器。
  5. 点击 Create。sh0 会部署一个启用自动 SSL 的 Logto 实例。
Tip
认证服务器的名称会成为域名的一部分(例如 my-app-auth.sh0.app)。请选择一个具有描述性的名称。

连接 PostgreSQL

每个 Logto 实例都需要一台 PostgreSQL 数据库服务器来存储用户数据、会话和配置。sh0 会自动:

  • 在您的 PostgreSQL 服务器中创建专用数据库。
  • 为 Logto 配置连接字符串。
  • 运行 Logto 的初始迁移。

您的用户数据永远不会离开您的服务器,它存储在由您掌控的同一个 PostgreSQL 实例中。

管理控制台

每个 Logto 实例都包含功能完备的管理控制台,可通过您的认证域名访问。在控制台中,您可以:

  • 管理用户(创建、编辑、删除、重置密码)。
  • 配置登录体验(品牌、颜色、徽标)。
  • 设置应用及其重定向 URI。
  • 添加社交登录连接器(Google、GitHub 等)。
  • 查看审计日志和会话活动。
  • 启用 MFA(基于 TOTP)。

登录方式

Logto 开箱即支持多种登录方式:

方式说明
邮箱 + 密码传统的邮箱/密码登录,附带邮箱验证
无密码(邮箱)通过邮件发送魔法链接或验证码
社交登录Google、GitHub、Apple、Discord 等
手机 + 短信短信验证码(需要短信连接器)

社交连接器

要添加社交登录提供商,请打开 Logto 管理控制台,进入 连接器,然后添加新的社交连接器。您需要从提供商处获取 OAuth 客户端 ID 和密钥(例如 Google Cloud Console、GitHub Developer Settings)。

SDK 集成

Logto 为主流框架提供官方 SDK:

平台软件包
浏览器(SPA)@logto/browser
React@logto/react
Next.js@logto/next
Vue@logto/vue
Node.js (Express)@logto/express
Pythonlogto-sdk-python

基础集成需要两个配置值:endpoint(您的认证域名)和 appId(来自 Logto 管理控制台)。

JWT 验证

Logto 签发标准的 OIDC 令牌(访问令牌、ID 令牌、刷新令牌)。要在您的 API 中验证令牌:

  • 从 https://<your-auth>.sh0.app/oidc/.well-known/openid-configuration 获取 JWKS。
  • 使用公钥验证令牌签名。
  • 检查 iss、aud 和 exp 声明。
Tip
如果您使用 PostgREST,请为其配置相同的 JWT 密钥或 JWKS URL。Logto 令牌可直接通过 PostgREST 的 JWT 验证。