认证与会话管理
Authentication & Session Management
解决用户身份验证、会话生命周期、OAuth 集成和 API 鉴权问题
子问题
1.OAuth 2.0 流程实现
2.会话 cookie 安全配置
3.CSRF state 签名验证
4.API Key 鉴权
5.CORS origin 白名单
6.OAuth state 上下文传递(origin/redirectUri 恢复)
7.Session 过期与服务端主动撤销
8.新用户自动初始化(upsert + 默认订阅)
各项目的解法1 solutions
Signals
横向对比
| 维度 | ClawFeed |
|---|---|
| 认证协议 | Google OAuth 2.0 + Authorization Code Flow |
| State 防护 | HMAC-SHA256 签名 payload + timingSafeEqual 验证 |
| 会话存储 | SQLite sessions 表 + randomBytes(32) hex ID |
| Cookie 安全 | HttpOnly + Secure + SameSite=Lax + 30天过期 |
| API 鉴权 | Bearer Token API Key,与 Cookie Session 双轨并行 |
| CORS 策略 | 环境变量白名单,支持完整 URL 和纯 hostname 匹配 |
| 多用户隔离 | 所有业务查询带 user_id 过滤 + 资源 ownership 检查 |
| 依赖复杂度 | 零外部依赖,纯 node:crypto 实现 |
最佳实践
1.HMAC 签名 OAuth state 防 CSRF
2.timingSafeEqual 防时序攻击
3.HttpOnly+Secure+SameSite cookie
4.OAuth state 用 base64url(JSON).base64url(HMAC) 格式携带上下文
5.Session ID 用 randomBytes(32) 生成 64 字符 hex 确保不可预测
6.Bearer Token 和 Cookie Session 双轨鉴权互不干扰