Packages 包@downcity/cityCity
登录与 token 链路
guest User City、accounts 服务、自有后端、user_token 和正常 User City 的衔接方式。
City 的登录问题,最终都落到一个目标:
让产品前端拿到
town_id + user_token,然后进入正常User City调用。
方式一:你的后端做登录
前端提交登录信息
-> 你的后端完成账号校验
-> 后端用 Admin City 申请 user_token
-> 返回 town_id + user_token
-> 前端创建正常 User City适合:
- 你已有账号系统
- 你需要复杂组织、权限、风控逻辑
方式二:accounts 服务做登录
前端创建 guest User City
-> 调 accounts.register / login
-> service 返回 user_token
-> 前端创建正常 User City适合:
- 想最快跑通最小注册登录
- 不想先自己维护用户表和 session 表
guest User City 是什么
它只是一个只有 city_url 的 User City:
const guest = new City({
role: "user",
city_url: "https://base.example.com",
});这个阶段通常只拿来调免登录 Action,例如:
accounts.registeraccounts.loginaccounts.oauth/startaccounts.oauth/result
切到正常 User City
const user = new City({
role: "user",
city_url: "https://base.example.com",
town_id: "town_xxx",
user_token: session.user_token,
});到了这一步,产品就进入了真正的用户态:
- 可以调 AI service
- 可以调需要用户身份的 custom service
- 可以调
accounts.me、usage.me这类 service