Skip to main content
 首页 » 编程设计

python之如何在 Django 中使用中间件同时处理基于 session 和 token 的身份验证

2024年08月26日29fff_TT

我想在我的应用程序中同时使用 token 和基于 session 的身份验证,优先级为 token 。我创建了两个具有相同 URL 的门户,一个使用 session ,另一个使用 token 。因此,当 session 在 cookie 中可用时,基于 token 的请求将失败,并显示“缺少 CSRF token ”错误消息。

我想到的一个解决方案是使用中间件,我可以优先考虑 token。如果两者都在请求中可用,那么自定义中间件将删除与 session 相关的内容并仅保留与 token 相关的信息并继续。

如果有人对此问题有可用的解决方案,请发帖回答?

提前致谢。

请您参考如下方法:

就我而言,我编写了自定义中间件来处理这种情况。 1. 当我使用 API 登录时,api 路径是 **/api/accounts/login**。因此,当请求出现在这个 url 上时,我将同时删除 sessionid 和 csrftoken。

当 HTTP_AUTHORIZATION 在请求中可用时,我删除了 session 和 csrftoken。

在我的情况下,可以处理以上两种删除情况。

感谢大家的帮助!