[GLP] Flask 搭配 MySQL(2)
接上篇,继续记录 JWT、权限与工程化细节。 1. JWT 流程 Access Token 短有效期,提高安全性。 流程 登录换取 access token + refresh token(refresh 放 HttpOnly、Secure、SameSite Cookie)。 请求携带 payload + access token;access token 放内存,登出即清。 access 过期后用 refresh Cookie 换新 access。 access 常设约 1 分钟,缩小被盗用窗口。 参数加单向哈希做完整性校验,最好带请求时间。 敏感头字段用 HMAC 加密;刷新 token 时服务端同样校验 HMAC。 JWT 可存 Redis 做吊销;我们对外提供无状态 API,未在服务端持久化会话。 实现注意 Set-Cookie 由服务端设置,不要在前端 JS 里写 Cookie。 Cookie 必须 HttpOnly、Secure、SameSite,否则后续请求可能带不上。 取舍 refresh Cookie 更安全,但浏览器扩展仍可能读到 Cookie。无状态是为方便其他系统调用,属于有意取舍。 ...