使用 Logto 作为权限和用户系统
0. 安装与准备
logto 提供了用户登录注册的界面、api 权限验证的能力。
建议使用 docker 安装 logto。参看 https://docs.logto.io/docs/tutorials/get-started/#local
安装成功后,一般通过 http:127.0.0.1:3002
可以访问到 logto admin console。
logto 应用运行在 http://127.0.0.1:3001
。这个地址在下面也被称为 LOGTO_ENDPOINT
。
Interaqt 应用与 logto 的关系如下图所示。
注册与登录:
API 调用:
1. 在 logto 中创建 vanilla js 应用。
在 logto 中创建一个应用,选择 vanilla js,获得 app_id。该应用用于前端处理用户的登录和注册。 在下面的代码中,由前端来处理的登录跳转等逻辑,使用的都是这个 Vanilla JS 应用的 app_id。
2. 在 logto 中创建 Machine to Machine 应用
该应用用于 Interaqt 从 logto 同步用户数据和调用 api 时的鉴权。 在下面的代码中,由后端来处理的鉴权等逻辑,使用的都是这个Machine to Machine应用的 app_id 的 app_secret
3. 在 logto 中创建 api resource
用于对 api 调用的进行保护。
4. 配置 logto new account webhook
让 logto 在新用户注册时自动把新用户信息同步给 Interaqt。
注意,如果你是在 docker 中启动的 logto,那么你需要把 localhost
改成 host.docker.internal
,例如:
http://host.docker.internal:4000/api/syncUser
至此,所有的 logto 配置都已结束。