gpt4 book ai didi

Django + JSON Web token + 禁用基于 session 的授权

转载 作者:行者123 更新时间:2023-12-04 21:09:28 25 4
gpt4 key购买 nike

我目前正在开发一个 Django 项目,该项目想要替换和禁用 Django 传统的基于 cookie 的 session ,并将其替换为 JSON Web token ,作为对我网站上用户的用户身份验证的一种方式。(“需要登录”的用户身份验证网站的一部分,而不仅仅是 REST API)。

我希望如何在我的网络应用程序中使用 JSON 网络 token :登录页面将进行 API 调用并接收 JSON Web token 作为响应,并且 JSON Web token 将通过(本地存储、 session 存储或 cookie)存储。 JSON Web token 将在后续 HTTP 请求(登录后)的 HTTP header 中传递,以便服务器知道我们是授权用户。

我看过的一些库是' djangorest框架 ' 图书馆。它似乎保护了与站点 API 相关的某些 URL(不是我想要的)。是否有任何库可以替换 Django 使用 JSON Web token 使用的普通“基于 cookie”的 session 并具有 正常 “基于 cookie 的” session 授权方案的功能( 普通 意思是“登录用户和注销用户”在站点上以及 Django 的默认管理面板 中都有效)如果是这样,我如何将该库与我当前的 Web 应用程序集成以实现 正常 功能?

我还希望禁用传统的“基于 cookie”的 session 。如何完全禁用它以便完成用户身份验证 只有使用 JSON 网络 token ?

最佳答案

只需使用 jwt 进行身份验证类。

JSON 网络 token 认证

JSON Web Token 是一个相当新的标准,可用于基于 token 的身份验证。与内置的 TokenAuthentication 方案不同,JWT Authentication 不需要使用数据库来验证 token 。 Blimp 维护 djangorestframework-jwt 包,该包提供 JWT 身份验证类以及客户端获取给定用户名和密码的 JWT 的机制

还将默认身份验证类设置为 jwt 并确定 setting.py 中的设置,例如:

REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.ext.rest_framework.OAuth2Authentication',
)

}

关于Django + JSON Web token + 禁用基于 session 的授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37931980/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com