简介
Usher 是一个身份提供商:它让用户登录你的 App,保障他们的账户安全,并告诉你的 App 他们是谁。这一切都基于 OpenID Connect 和 OAuth 2.1,因此你现有的库都能直接使用。
Usher 做什么
引座员(usher)在门口有两项工作:查验你的门票,再引你入座。Usher 为你的 App 做的也是这两项工作:
- 身份验证:用户在 Lobby(Usher 托管的登录页面)中证明自己的身份,方式包括通行密钥、电子邮件验证码、魔法链接、社交账户或密码。
- 授权:你的 App 会收到令牌,令牌中写明这个人是谁、同意共享哪些信息,你的 API 可以对令牌进行校验。
组成部分
| 部分 | 说明 |
|---|---|
| Lobby | 托管的登录页面。它总会写明用户要前往的 App。 |
| Usher 账户 | 属于用户本人:包括电子邮件地址、通行密钥、第二重验证方式和已登录的设备。 |
| Usher Console | 你在这里创建项目和环境、注册应用并管理用户。 |
| SDK 和组件 | @usher/nextjs,包含 <SignIn /> 和 <UserButton />。随 SDK 推出。 |
如何融入你的 App
你创建的每个环境都是一个独立的 OpenID Connect 颁发者,拥有自己的地址:
颁发者
https://<handle>.usherid.com你的 App 将用户送往这个颁发者登录,用户返回时会带回一个授权码,你的 App 再用它换取令牌。这就是标准的带 PKCE 的授权码流程,其中每一步都在颁发者的发现文档中有所描述:
发现文档
https://<handle>.usherid.com/.well-known/openid-configuration