7

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

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

我看过的一些库是“ djangorestframework ”库。它似乎保护了有关网站 API 的某些 URL(不是我想要的)。是否有任何库可以用 JSON Web 令牌替换 Django 使用的正常“基于 cookie”的会话,并具有“基于 cookie”的会话授权方案的正常功能(正常意思是“登录用户并注销用户”适用于该站点以及Django 的默认管理面板中') 如果是这样,我如何将该库与我当前的 Web 应用程序集成以实现正常功能?

我还希望禁用传统的“基于 cookie”的会话。如何完全禁用它,以便使用 JSON Web 令牌完成用户身份验证?

4

1 回答 1

2

只需使用 jwt 来认证类。

JSON Web 令牌认证

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

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

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

}

于 2016-06-20T22:04:51.533 回答