我目前正在开发一个Django项目,该项目想要替换和禁用Django传统的基于cookie的会话,并将其替换为
JSON Web令牌,作为我网站上用户的用户身份验证方式.(“需要登录”的用户身份验证网站的一部分,而不仅仅是REST API).
我希望在我的Web应用程序中使用JSON Web令牌:登录页面将进行API调用并接收JSON Web令牌作为响应,JSON Web令牌将通过(本地存储,会话存储或cookie)存储. JSON Web令牌将在后续HTTP请求中的HTTP头中传递(登录后),以便服务器知道我们是授权用户.
我看过的一些库是’djangorestframework’库.它似乎保护了某些网站的API(不是我想要的).是否有任何库可以取代Django与JSON Web令牌使用的正常“基于cookie”的会话,并具有“基于cookie”的会话授权方案的正常功能(正常意味着’记录用户并记录用户的工作该网站以及Django的默认管理面板’)如果是这样,我如何将该库与我当前的网络应用程序集成以实现正常功能?
我还希望禁用传统的“基于cookie”的会话.如何完全禁用它,以便仅使用JSON Web令牌进行用户身份验证?
最佳答案 只需使用jwt进行身份验证.
JSON Web令牌认证
JSON Web Token是一个相当新的标准,可用于基于令牌的身份验证.与内置TokenAuthentication方案不同,JWT Authentication不需要使用数据库来验证令牌. Blimp维护着djangorestframework-jwt软件包,该软件包提供了一个JWT Authentication类以及一个客户端获取JWT的机制,给出了用户名和密码
同时将默认身份验证类设置为jwt并确定setting.py中的设置,如:
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'oauth2_provider.ext.rest_framework.OAuth2Authentication',
)
}