问题标签 [django-rest-framework-jwt]
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.
django - 使用 Django rest-framework-jwt 撤销令牌
我正在考虑允许用户撤销以前发布的令牌(是的,即使它们设置为在 15 分钟内到期),但没有找到使用DRF-jwt 的任何方法。
现在,我正在考虑几个选项:
- 希望 SO 上的某个人会告诉我如何开箱即用地做到这一点;-)
- 使用 jti 字段作为计数器,并且在撤销时要求 jti > last jti。
- 将用户级盐添加到签名过程中,并在撤销时更改它
- 在一些 Redis 数据库中存储实时令牌
以上任何一条路都可以吗?
django - Django TokenAuthentication - 扩展 JWT 获取_jwt_token
我有一个由Django REST 框架 JWT Auth提供支持的 Django REST 应用程序和令牌身份验证
让我制定我的高级目标:
我的目标是为用户生成一个令牌,如果他提供正确的凭据,然后在成功登录后立即执行一些额外的操作。为简单起见,假设我想将“Hello”打印到控制台。
现在我的代码如下所示:
我想做的是以下
- 获取
obtain_jwt_token
生成的令牌 - 如果认证成功,做一些额外的操作并将令牌返回给用户。
我迷失在所有与身份验证类相关的 Django 架构的丛林中。我是否理解正确,如果我使用 Django JWT 之类的第三方包,我的登录过程没有电源,并且在用户登录后无法执行其他操作?如果我想在登录过程中拥有更多权力,我必须完成 Django JWT 开发人员从头开始完成的所有工作吗?我可以以某种方式在 Django JWT 的顶部obtain_jwt_token
添加一些操作吗?
django-rest-framework - Django REST JWT 刷新
使用 JWT 实现 Django REST 和身份验证。对于 JWT 令牌,我们必须在它过期之前对其进行刷新。过期的 JWT 不会提供新的令牌。
对于我的移动设备,我需要每 10 分钟刷新一次令牌 (JWT_EXPIRATION_DELTA)。如果用户超过 10 分钟不活动,那么我需要要求登录。即使在 JWT 令牌过期后,有什么方法可以刷新令牌。(我们可以将刷新时间限制为2天)
什么是在 Mobile 中处理此行为的最佳方法。
谢谢。
django - djangorestframework-jwt 未提供身份验证凭据
我正在尝试使用 django rest_framework_jwt。我可以让它生成一个令牌,但是当我尝试在标题中将它发送到受保护的视图时,我得到“未提供身份验证凭据”。
我发送的标题格式是:
设置.py
视图.py
python - 如何使用 django rest 框架安全地下载文件?我正在使用 Oauth2
我正在创建一个 Django rest api 并使用 Oauth2 进行身份验证和令牌生成。我需要有关使用 REST api 安全下载任何文件的信息。我怎样才能做到这一点。
下面是我的序列化数据,我想安全地使用 get 请求下载“文档”,即“link_mh6f7d3.db”。
{“id”:5,“file_name”:“sqlite3”,“file_descripton”:“上传sqlite3转储文件”,“完成”:true,“upload_time”:“2017-05-08T12:57:59.457859Z”,“文件”:“ http://xxx.xxx.x.xx:9000/media/Documents/link_mh6f7d3.db ”},
目前我要求这样:
http://127.0.0.1:8000/media/Documents/link_O1JBJGR.db [但这不安全]
请对这个话题有所了解。
谢谢, 沙什
django - Django rest 框架 JWT 和自定义身份验证后端
我有一个自定义用户模型并创建了一个自定义身份验证后端。我正在使用django rest framework和django rest framework JWT进行令牌身份验证。
用户型号:
身份验证后端:
并在settings.py中添加:
在登录 django 管理站点时,电子邮件和手机号码都可以很好地验证用户身份。但是,当我尝试使用django rest framework JWT为用户获取令牌时,出现错误:
我还在 Rest 框架的默认身份验证中添加了自定义身份验证后端类,但它仍然无法正常工作:
我错过了什么?为什么它在登录到 django 管理站点时工作,但在使用 django rest framework jwt 获取令牌时出错?
更新
我按照建议制作了另一个身份验证后端并将其添加到 中DEFAULT_AUTHENTICATION_CLASSES
,但即使这样也不起作用。
设置:
更新
args
将auth 类中的从username
to更改为email
似乎可以获取,auth_token
但再次无法登录到管理站点。
python - Django Rest Framework JWT - 仅在第一次尝试时出现“错误解码签名”
正如您可能从标题中看出的那样,我遇到了rest_framework_jwt的问题。
奇怪的是,在验证并收到我的令牌之后,如果使用该令牌发出后续请求,我会收到 401 Permission Denied:“错误解码签名”。我已将其追踪到 jwt python 库中的 jwt.decode() 引发的异常,并且 JWT 设置中的任何变化都无法解决该问题。
下次我发出请求(相同的 url,我只是在我的应用程序中点击刷新)时,我得到了正确的验证,并且收到了正确的响应。
更奇怪的是,使用https://jwt.io/和我的 settings.SECRET_KEY,我可以验证我的签名!所以我知道它是有效的。
有什么想法吗?
python - 使用 Django REST 框架更新 USERNAME_FIELD 时如何处理令牌
我正在使用 Django REST Framework 和 Angular 4 开发应用程序。
我不知道 UPDATE 登录用户信息时对令牌的处理。
Django的用户模型定制如下。
登录密钥从用户名更改为电子邮件。
[模型.py]
从 Angular 4 更新用户信息的功能实现如下。
使用函数 updateUserInfo 将新用户信息放入 Django REST 框架中。
[组件.ts]
[服务.ts]
Django中更新用户信息的视图和序列化器如下。
[视图.py]
[序列化程序.py]
现在发生的问题是更新电子邮件时的行为。
因为 USERNAME_FIELD 是电子邮件,所以更新电子邮件必须更新前端持有的令牌。
但我不知道如何通过新电子邮件获取令牌。
django - 需要明确使用 django-rest-framework-jwt 和 django-rest-auth 进行社交登录
我可以django-rest-auth
按照他们在文档中的说明从他们那里接收 facebook 身份验证 access_token ,但它看起来不像是由django-rest-framework-jwt
. 我确实REST_USE_JWT = True
进去了settings.py
。这就是我所做的一切,我不确定是否需要做任何其他事情来确保令牌是由 JWT 生成的。我设置了一个端点来验证 jwt 令牌,如下所示:
这就是我测试此端点是否收到访问令牌的方式
是一个有效的 JWT 令牌。当我尝试验证令牌时出现错误Error decoding signature
。
在旁注中,我注意到当我尝试使用 Facebook 登录返回的相同请求两次POST
向API 端点发出请求时,我收到了来自 django 的请求。rest-auth/facebook/
access_token
403 Forbidden
有人可以解释一下如何使 JWT 与 django-rest-auth 一起工作吗?
python - Django DRF 更新用户
我正在尝试使用 Django-Rest-Framework (DRF) 创建一个 api 来对用户进行 CRUD。我设法创建并读取了一个用户,但由于某种原因更新不起作用。似乎它正在尝试创建用户而不是更新它,因为它以“用户名已存在”错误消息进行响应。当我尝试传递尚未在数据库中的电子邮件时,它只会创建一个新用户。有谁知道为什么会这样?
这是我的用户序列化器:
这是我的观点: