Django REST Framework Simple JWT令牌删除及相关问题咨询
Django Simple JWT令牌管理与用户删除问题解答
问题背景
当前用户每次登录都会生成新的Simple JWT令牌,每个用户关联多个未失效令牌,导致无法删除用户。已配置并通过CLI执行flushexpiredtokens命令清除了过期令牌,但未失效令牌仍阻碍用户删除。
问题与解答
- 是否需要设置cron job(定时任务)?
- 建议设置。定期执行
flushexpiredtokens清理过期令牌,能避免数据库中令牌数据堆积,减轻存储负担,也能降低后续用户删除时的阻碍。可以用系统cron(Linux/macOS)或Windows任务计划程序,按合适周期(比如每日一次)触发命令。
- 能否实现一个功能,在用户点击删除时,先使所有当前令牌失效,再刷新过期令牌,最后删除用户?
- 完全可以。在用户删除的视图逻辑中,先通过Simple JWT提供的
OutstandingToken模型查询该用户的所有未失效令牌,将这些令牌直接删除或标记为失效;接着调用过期令牌清理逻辑;最后执行用户删除操作即可。
- 我在CLI中执行了自定义的flushexpiredtokens命令,这类命令是否应从UI执行?
- 这类后台清理命令通常不需要从UI执行。CLI执行更适合定期维护场景,能避免误操作。如果管理员需要在后台触发,可以在Django Admin中添加自定义操作,或者开发管理员专属页面,但不建议对普通用户开放此类功能。
内容的提问来源于stack exchange,提问作者HarSin
相关产品推荐
相关产品推荐

