python 读取 session 鉴权方法二

📅 2026/8/4 5:34:52 👁️ 阅读次数 📝 编程学习
python 读取 session 鉴权方法二

python 读取 session 鉴权方法二

Posted on 2026-08-04 05:33  微蓝的天  阅读(0)  评论(0)    收藏  举报

让我先看当前认证的实现,再设计 refresh token 方案。
现在我有完整的方案图了。需要改 4 个地方:

1/4 后端 — auth.js 增加 refresh token 函数

2/4 后端 — login 返回 refresh_token + /refresh 端点

Now add the /refresh endpoint:

3/4 前端 — api.ts + AuthContext

现在实现对 api.tsAuthContext.tsx 的修改:
Now update AuthContext.tsx
所有零新增错误。构建验证:

4/4 Python — download_v3.py refresh token demo

所有错误都是之前就存在的Permission 类型不匹配、PipelineStep 未找到等),与本次修改无关。本次四文件修改零新增错误。

修改总结

改了什么(4 个文件)

文件 改动
server/middleware/auth.js +generateRefreshToken() + verifyRefreshToken();refresh 30 天过期,带 type:'refresh' 标记防混用
server/routes/auth.js login 响应新增 refresh_token 字段;新增 POST /auth/refresh 端点
src/lib/api.ts 新增 refresh token 存取函数;request() 自动捕获 401 → refresh → 透明重试;并发 401 去重
src/context/AuthContext.tsx login 时保存 refresh_token;logout 时一并清除
scripts/download_v3.py 新的 Python demo,支持 refresh token 自动续期

认证流程对比

v2(之前):access_token(24h) 过期 → 必须输密码重新登录v3(现在):access_token(24h) 过期 → refresh_token(30d) 自动换新 token 对refresh_token 也过期 → 才需要输入密码登录

Token 旋转刷新

POST /auth/login→ { token: "eyJ...(24h)", refresh_token: "eyJ...(30d)" }POST /auth/refresh  { refresh_token: "..." }→ { token: "eyJ...(新的)", refresh_token: "eyJ...(新的,重置30d)" }

每次 refresh 都会同时轮换 access 和 refresh token,旧 token 立即失效。只要在 30 天内至少用一次,就能无限续期。

Python v3 使用

# 首次:登录并缓存 token 对
python scripts/download_v3.py --user admin --pass 123456# 后续 30 天内:无需密码,自动续期
python scripts/download_v3.py --task-number TK-20260804-0007 --all --dir ./out# 显式登录(清除旧缓存)
python scripts/download_v3.py --login