使用 PyJWT 基于 Django 令牌的身份验证,令牌验证问题

     2023-03-10     166

关键词:

【中文标题】使用 PyJWT 基于 Django 令牌的身份验证,令牌验证问题【英文标题】:Django Token based authentication using PyJWT , issue with verification of token 【发布时间】:2015-10-07 23:51:59 【问题描述】:

我正在 Python Django 中实现基于令牌的身份验证,因此我遵循基于令牌的身份验证步骤,如下所述:

在基于令牌的身份验证中,不会使用 cookie 和会话。 令牌将用于对用户的每个请求进行身份验证 服务器。让我们用基于令牌的方式重新设计第一个场景 身份验证。

它将使用以下控制流程:

    用户在登录表单中提供用户名和密码,然后点击登录。 发出请求后,通过在数据库中查询来验证后端的用户。如果请求有效,则通过 使用从数据库中获取的用户信息,然后返回 该信息在响应标头中,以便我们可以存储令牌 本地存储中的浏览器。 在每个请求标头中提供令牌信息,以访问应用程序中的受限端点。 如果从请求头信息中获取的token有效,则让用户访问指定的端点,并以JSON或 XML。

我已经完成了上面列出的前两个步骤。我需要继续第 3 步和第 4 步。因此,我正在编写一个 Django 装饰器来为我们完成任务。

但是,在身份验证步骤之后,我有点卡住了。

这里是将teacher_idtoken 发送到服务器的AngularJS 代码:

get_teacher_profile : function(teacher_id,token) 

    $http.defaults.headers.common['Authorization'] = 'Token ' + token;

    return $http.get("http://127.0.0.1:8000/user_manager/teacher/" + teacher_id + '/' + token)
                .then(function(response) 
                    if (typeof response.data === 'object') 
                        return response.data;
                     else  return "Error"; 
                , function(error) 
                    return null;
                );
,

根据 Django rest 框架,这里是在 urls.py 中指定的路由器:

router.register(r'teacher', view.TeacherViewSet)

...这里是TeacherViewSet 类:

class TeacherViewSet(viewsets.ModelViewSet):
    queryset = Teacher.objects.all()
    serializer_class = Teacher_Serializer

现在我需要验证TeacherViewSet 中的令牌。我尝试了一些装饰器,但我无法访问我在TeacherViewSet 的标头中设置的令牌。我正在使用 PyJWT 进行基于令牌的身份验证。如果有人以前遇到过这种情况,请告诉我。

【问题讨论】:

嘿。您是否有不想使用 DRF 令牌身份验证的原因? django-rest-framework.org/api-guide/authentication/… 【参考方案1】:

请查看:

http://getblimp.github.io/django-rest-framework-jwt/#rest-framework-jwt-auth

这将在处理 django-rest-framework 时为您处理 JWT 支持。

【讨论】:

PyJWT 返回无效的令牌签名

...atures【发布时间】:2017-03-0323:06:22【问题描述】:我正在使用PyJWT==1.4.2生成我打算用于Firebase身份验证的令牌。很遗憾,我无法使用任何第三方PythonFirebase库,即使可以,我在尝试使用FirebaseTokenGenerator时也遇到了同样的困难。在... 查看详情

在 Django (DRF) 中使用外部 API 进行基于令牌的身份验证

】在Django(DRF)中使用外部API进行基于令牌的身份验证【英文标题】:UsingexternalAPIfortokenbasedauthenticationinDjango(DRF)【发布时间】:2020-06-2316:02:48【问题描述】:上下文我的API接受一个jwt-token,我可以将其传递给外部端点,如果无效/... 查看详情

Django:基于 DRF 令牌的身份验证 VS JSON Web 令牌

】Django:基于DRF令牌的身份验证VSJSONWeb令牌【英文标题】:Django:DRFTokenbasedAuthenticationVSJSONWebToken【发布时间】:2015-10-1412:49:03【问题描述】:我正在构建一个真实世界的应用程序,用户将主要从Android、iOS设备以及桌面访问该应... 查看详情

Django Rest 框架中的基于会话的与令牌身份验证

】DjangoRest框架中的基于会话的与令牌身份验证【英文标题】:SessionBasedvsTokenAuthenticationinDjangoRestFramework【发布时间】:2021-05-1023:02:03【问题描述】:DRF文档(https://www.django-rest-framework.org/api-guide/authentication/#authentication)指出令牌身... 查看详情

检测用户首次使用 Django Rest Framework 进行身份验证

】检测用户首次使用DjangoRestFramework进行身份验证【英文标题】:DetectfirsttimeuserhasauthenticatedusingDjangoRestFramework【发布时间】:2017-04-1301:28:24【问题描述】:我正在使用DRF来允许我的移动应用程序的用户对我的网络应用程序进行身... 查看详情

django rest 框架身份验证

...ations【发布时间】:2013-06-2919:27:45【问题描述】:我已经使用djangorest框架开发了一个API,并使用了基于令牌的身份验证,现在我试图从单独的项目中使用它。我如何使用用户名和密码登录并获取令牌作为响应,并在所有下一个ur... 查看详情

Django + JSON Web 令牌 + 禁用基于会话的授权

】Django+JSONWeb令牌+禁用基于会话的授权【英文标题】:Django+JSONwebtokens+disablingsession-basedauthorization【发布时间】:2016-10-2206:25:06【问题描述】:我目前正在开发一个Django项目,该项目想要替换和禁用Django的传统基于cookie的会话,... 查看详情

带有 jwt 身份验证的 django rest api 要求 csrf 令牌

...题描述】:我是djangorestapi框架的新手。我正在为其余api使用基于JWT令牌的身份验证,并具有以下设置-REST_FRAMEWORK=\'DEFAULT_AUTHENTICATION_CL 查看详情

使用 PyJWT 的 Jwt 解码引发签名验证失败

】使用PyJWT的Jwt解码引发签名验证失败【英文标题】:JwtDecodeusingPyJWTraisesSignatureverificationfailed【发布时间】:2018-03-1911:09:53【问题描述】:我在django视图中解码jwt令牌时遇到了一个奇怪的问题。如果我尝试jwt.decode(\'encoded_token\',\... 查看详情

在基于令牌的身份验证中使用刷新令牌是不是安全?

】在基于令牌的身份验证中使用刷新令牌是不是安全?【英文标题】:UsingRefeshTokeninToken-basedAuthenticationissecured?在基于令牌的身份验证中使用刷新令牌是否安全?【发布时间】:2015-02-0604:10:38【问题描述】:我正在构建基于令牌... 查看详情

Django 令牌:使用令牌身份验证下载服务器文件

】Django令牌:使用令牌身份验证下载服务器文件【英文标题】:Djangotoken:downloadserverfileswithtokenauthentification【发布时间】:2019-02-1600:57:33【问题描述】:我正在寻找设置tokenauthentification,以便以安全的方式下载服务器文件并在过... 查看详情

在python中使用PyJWT解码jwt令牌给出错误算法不支持

】在python中使用PyJWT解码jwt令牌给出错误算法不支持【英文标题】:DecodingjwttokenwithPyJWTinpythongivingerrorAlgorithmnotsupported【发布时间】:2021-08-0816:07:11【问题描述】:我正在使用PyJWT解码来自keycloak的JWT令牌。eyJhbGciOiJSUzI1NiIsInR5cCIgOiA... 查看详情

基于会话的身份验证或基于令牌的身份验证使用哪一种?

】基于会话的身份验证或基于令牌的身份验证使用哪一种?【英文标题】:Sessionbasedauthenticationortokenbasedauthenticationwhichonetouse?【发布时间】:2015-12-2402:33:41【问题描述】:我正在开发一个全栈MEAN(MongoDB、ExpressJS、AngularJS、NodeJS... 查看详情

使用 Jwt 的基于令牌的身份验证无法授权

】使用Jwt的基于令牌的身份验证无法授权【英文标题】:TokenbasedauthenticationwithJwtfailstoauthorize【发布时间】:2021-03-2515:08:32【问题描述】:我正在尝试为我的web-api设置基于令牌的身份验证。截至目前,我正在正确生成令牌,但我... 查看详情

带有 okta OAUTH 令牌身份验证的 Django Rest API

...ntication【发布时间】:2020-08-2120:34:05【问题描述】:我在使用Okta令牌身份验证时遇到问题,我知道如何使用drf令牌和jwt令牌身份验证进行身份验证。在我的项目中,我必须使用okta令牌,它也是一种jwt,但是,此令牌是由前端生... 查看详情

使用 Django Rest 框架进行 JWT 令牌身份验证

】使用DjangoRest框架进行JWT令牌身份验证【英文标题】:JWTTokenAuthenticationwithDjangoRestFramework【发布时间】:2018-12-1513:12:03【问题描述】:我在我的Django-Rest应用程序上使用reactnative前端进行令牌身份验证时遇到了一些问题。我一直... 查看详情

Django REST 的 JSON Web 令牌不会向用户数据库进行身份验证

...41【问题描述】:我有一个工作的DjangoRESTAPI后端。我以前使用会话身份验证,但想转向基于令牌以跨多个服务器进行扩展。我已经研究了几天了,但我还没有找到我的问题的答案。我将djangor 查看详情

在 Django 中使用 JWT 令牌进行身份验证

】在Django中使用JWT令牌进行身份验证【英文标题】:AuthenticatingwithJWTtokeninDjango【发布时间】:2017-02-0401:41:50【问题描述】:我是Django的初学者,我正在从这里学习JWT令牌。https://jpadilla.github.io/django-rest-framework-jwt/#rest-framework-jwt-a... 查看详情