[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。无状态是为方便其他系统调用,属于有意取舍。 ...

2021年8月6日 · hyyfrank

[GLP] Flask 搭配 MySQL(1)

一个 Flask 后端脚手架。之前写的 Python 多是脚本,这次想搭一套像样的后端骨架。 1. 需要的能力 flask blueprint 拆分路由 CORS JSON 响应 方便调试 健康检查接口 日志 多环境配置 flake8 静态检查 yapf 格式化 JWT 密码哈希 MySQL Sphinx 文档 Postman 集合 测试 XSS 防护(ORM + 转义) 参数完整性校验(SHA-1,防篡改) 时间戳校验(防重放)

2021年8月3日 · hyyfrank