This commit is contained in:
eric
2026-03-12 05:40:18 -05:00
parent d514f8348d
commit ffa5043daf
12 changed files with 330 additions and 45 deletions

View File

@@ -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 窃取。