问题标签 [django-rest-framework-simplejwt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
341 浏览

django - Django自定义用户密码没有被散列

我这样创建了自定义用户模型:

经理:

我已经打电话给user.set_password(password)经理,但它没有散列它。为此,我无法登录!这是我用于注册过程的视图:

我见过其他解决方案,但它们与序列化程序有关。就我而言,我没有使用任何序列化程序。我该如何解决?

0 投票
1 回答
998 浏览

django - 自定义用户/密码不正确时检索到的默认消息 djangorestframeworkssimple-jwt?

我正在使用 django 3.0.5、djangorestframework 3.11.0 和 djangorestframework-simplejwt 4.4.0

我已经使用 drf simple-jwt 进行身份验证,一切正常。密码错误时,响应为

我需要自定义此响应。我在 TokenObtainSerializer 类的字典中检查了这条消息

我试图覆盖这个类但没有成功。

有任何想法吗?提前致谢

0 投票
1 回答
756 浏览

python - DRF SimpleJWT 删除密码并添加日期字段

我创建了一个从 AbstractBaseUser 扩展的自定义用户模型,其中我从用户那里获得的唯一数据是用户 ID、用户(用户名字段)和日期(必需,格式为dd-mm-yyyy)以及用户的创建工作正常,您可以从下一张图片中的数据库中看到

HeidiSQL中的用户表

使用password = Nonelast_login = None参考我不想要密码和 last_login 表。

然后,创建了一个只有经过身份验证的用户才能访问的视图。

为了处理身份验证,使用了 simpleJWT。在 urls.py

通过访问http://127.0.0.1:8000/api/token/,这就是我所看到的(按预期工作)

DRF 简单 JWT

我之前在另一个项目中使用包含该数据(用户和密码)的用户模型测试了用户和密码,并且工作正常。现在,在这里,如果我尝试使用现有用户发布但没有密码,我会收到警告并且无法发布

此字段不能为空。

没有密码的simpleJWT

如果我添加除空格以外的任何内容,则会出现以下错误

/api/token/ 类型为“NoneType”的对象的 TypeError 没有 len()

不工作简单jwt

如何删除密码字段?另外,我怎么能添加一个日期字段呢?

0 投票
1 回答
733 浏览

django - django rest frame work API Test case (Authentication needed)

I am using (simple JWT rest framework) as a default AUTHENTICATION CLASSES Now I want to write an API test case for one of my view which needed authentication I don't know how to add "access" token and how to use this in rest framework test cases

I will be thankful if you answer to my question

0 投票
1 回答
937 浏览

python - 用户存在但无法使用 simpleJWT 和 Django Admin 进行身份验证

当尝试对通过 DRF Browsable API 中的视图创建的用户进行身份验证时,我得到

未找到具有给定凭据的活动帐户

DRF 身份验证失败

风景:

序列化器:

密码正在被散列。在这个阶段,进入管理页面并测试使用创建的帐户登录那里并得到

Django 管理问题

确保自定义用户模型具有 is_active、is_superuser 和 is_staff 并检查是否可以解决问题,但它没有。

然后,尝试使用python manage.py createsuperuser... 创建用户,然后我可以登录管理面板并使用最初显示的令牌获取对视图验证该用户。

Django Admin 登录成功

simpleJWT 令牌

0 投票
3 回答
3702 浏览

python - 向 DRF 简单 JWT 有效负载添加声明

在 POST 到自定义视图时使用djangorestframework_simplejwt

我可以获得以下访问令牌

通过转到https://jwt.io/我可以看到当前有效负载

智威汤逊

因此,我们可以看到令牌的第二部分是有效负载 - 包含声明。

我已经探索了如何向响应正文添加更多信息,现在想知道如何通过添加iat 声明、用户名和今天的日期来自定义有效负载数据。

0 投票
2 回答
573 浏览

python - 了解 JWT 并确认 simplejwt 在测试用例中过期

我只是想了解djangorestframework-simplejwt到期,并想知道令牌到期时返回的内容。

为了探索这一点,我在我的 django 项目中编写了一个简单的测试用例,但我似乎无法让过期发生。

视图.py

目前我的测试用例如下:

测试.py

我希望这会导致某种授权错误,例如 a401或其他东西,但它似乎仍会创建受保护的视图。

self.assertEqual(response.status_code, HTTPStatus.UNAUTHORIZED)AssertionError: 201 != HTTPStatus.UNAUTHORIZED: 401

为什么令牌不会过期?或者,我怎样才能使令牌过期?

也许我没有正确理解这一点。

我的理解是,ACCESS_TOKEN_LIFETIME过期后您将无法再使用access_token并且需要使用令牌获取新refresh令牌。那是对的吗?

0 投票
2 回答
440 浏览

python - 将 JWT 作为“x-my-jwt”标头附加到上游发布请求

去一个看起来像这样的特定解决方案

高级视图

从我之前的努力中可以看出,在 Django 中,有一个特定的端点

当我与现有用户一起发布时

给出的回应

我收到一个回复​​,可以看到与此类似的访问令牌

如何将 JWT 作为“x-my-jwt”标头附加到上游 POST 请求?

0 投票
1 回答
2197 浏览

django - 在 Django simple-jwt 令牌身份验证中获取后端中的当前刷新令牌

我想在后端接收刷新令牌以将令牌列入黑名单。

当用户传递访问令牌以调用 API 时,我正在获取访问令牌request.header,有没有办法在用户未传入标头时获取刷新令牌。

0 投票
1 回答
566 浏览

django - Django simplejwt JWTAuthentication 权限

我在 Django 中使用 rest_framework_simplejwt.authentication.JWTAuthentication 为我们的用户创建令牌。但是某些用户的用户权限有限[在管理面板中]。例如,他们只允许获取文章而没有其他内容。但是 simplejwt 创建的令牌也允许用户获取所有其他数据。

有没有办法调整它?我认为 simplejwt 会覆盖 Django 权限。