;s;
This commit is contained in:
@@ -439,6 +439,19 @@ digital 专题站 VIP 校验:用户有 VIP 若满足其一:① 本专题站
|
||||
|
||||
---
|
||||
|
||||
## 七.2 meetup / vip 站跨站 SSO 实现清单
|
||||
|
||||
若 meetup.hackrobot.cn、vip.hackrobot.cn 刷新后仍无登录态,请确认:
|
||||
|
||||
1. **必须实现** `/api/auth/me`(GET):读取 `pb_session` Cookie,解析 token,调用 PocketBase refresh 验证,返回 `{ user, token }`。digital 站已实现,可参考 `app/api/auth/me/route.ts`。
|
||||
2. **必须实现** `/api/auth/sync-session`(POST):登录成功后由前端调用,将 token 写入 `Domain=.hackrobot.cn` 的 Cookie。
|
||||
3. **必须实现** `/api/auth/logout`(POST):清除 `pb_session` Cookie。
|
||||
4. **启动时**:先调 `GET /api/auth/me`,若有 `user` 则 `pbSaveAuth` 并视为已登录;若无则读 localStorage 兼容。
|
||||
5. **Cookie domain**:生产环境(`*.hackrobot.cn`)必须设置 `domain: ".hackrobot.cn"`;localhost 开发时 domain 应为 `undefined`(不设),否则 Cookie 无法写入。digital 已通过 `getAuthCookieDomain(request)` 自动处理。
|
||||
6. **顶部头像**:登录后在顶部显示圆形头像(邮箱首字母),点击展开退出按钮。digital 已实现 `UserAvatar` 组件(`app/components/UserAvatar.tsx`),meetup/vip 可复制该组件并在 Header 中替换原有登录态展示。
|
||||
|
||||
---
|
||||
|
||||
## 八、安全与注意点
|
||||
|
||||
1. **Cookie 安全**:`pb_session` 建议 `httpOnly`,防止 XSS 窃取。
|
||||
|
||||
Reference in New Issue
Block a user