问题标签 [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.
rest - 在 JWT 的情况下,SPA 和移动应用程序是否会针对同一端点进行身份验证?
我正在制作一个 REST 服务器,它将同时具有单页应用程序形式的 Web 客户端和本机移动应用程序形式的 Web 客户端。我正在研究使用 JWT 使服务器无状态。到目前为止,我的理解是:
- 身份验证端点在提供正确的凭据后返回两个令牌,即访问令牌和刷新令牌。
- 出于安全原因,这些令牌应存储在浏览器上的“httpOnly”cookie 中。
据我所知,本机移动应用程序没有 cookie 存储,因此它们有一些其他数据存储用于应用程序,例如数据库。那么,我是否需要为这些不同的应用程序实现两个不同的端点?我想做的是:
- 端点 1(对于单点应用程序):接受 json 中的用户凭据并在 cookie 中返回 jwt
- 端点 2(对于本机移动应用程序):接受 json 中的用户凭据并返回原始 json 正文中的 jwt。
上述方法是否正确,或者我们对它们都有一个端点。还可以帮助如何使用 django-rest-framework-simplejwt 实现这一目标。
django - Django Rest Framework 避免身份验证 JWT
我正在使用rest_framework_simplejwt
对我的用户进行身份验证,但是在某些视图中我需要忽略它,因为这些是公共视图。我想将令牌检查到视图流中。预期的行为是:
在公众视野中
- 避免令牌验证:如果有过期或无效的令牌,忽略它并让我在 APIView 中验证它
实际上rest_framework_simplejwt
检查令牌并401
在令牌无效或过期时引发......
我尝试authentication_classes
像这样在 APIView 中禁用:
但是如果我在输入GET APIView
方法之前禁用它,我不能这样做,if reques.user.is_authenticated:
因为我禁用了令牌:(
是否存在一种方法可以输入 api http 方法并手动检查用户进入视图?谢谢
django - 使用 SimpleJWT 登录时的 AnonymousUser
我知道这不是第一个此类问题,但其他主题对我没有帮助。我想使用 djangorestframework-simplejwt 对用户进行身份验证,一切都很好,因为它涉及到获取用户。我总是得到匿名用户。
我通过访问 api/token 并传递凭据来获取令牌。令牌已正确创建,它包含正确的用户 ID。当我尝试访问受保护的视图时,它允许我这样做,但 Django 无法识别用户。
设置.py
views.py """帐户应用程序的视图。"""
我相信这是显而易见的,因为我几天前开始学习 drf,但数小时的搜索谷歌并没有帮助。
django - 动态 USERNAME_FIELD djangorestframework 和 simplejwt
我正在开发一个身份验证应用程序,用户可以通过该应用程序登录
使用的框架/库
我正在尝试在生成的 jwt 令牌中添加多个声明。
下面是我的 LoginView 和 LoginSerializer。
看法
串行器
但是在请求中发送有效的电话号码和密码时,我收到电子邮件不能为空白错误。这是因为 TokenObtainPairSerializer 会检查 User.USERNAME_FIELD (在我的情况下是电子邮件。)
我该如何处理这种情况或让它发挥作用?
django - 手动触发 django-simpleJWT 身份验证
我正在尝试重新利用django-rest-framework-simplejwt以完全不同的方式进行身份验证(电话号码和短信验证码在两个不同的请求中)。问题是我已经开发了所有东西,但是由于这个身份验证系统在项目中的紧密集成,我必须手动触发 TokenObtainPairView,这样用户仍然会收到令牌并在系统中进行身份验证。
有什么办法可以做到吗?我考虑过手动触发视图,但这不起作用,因为即使我为该视图自定义序列化程序,我也无法覆盖用户的标准用户名/密码(用户没有密码并且用户名是随机的)
关于如何做到这一点的任何想法?
我目前的代码是这样的:
django - DRF - JWT 如何修复令牌过期后仍然有效?
我正在将 Djangorestframework 与 djangorestframework-simplejwt 库一起使用,令牌系统正在工作,除了在访问和刷新令牌都过期后(我可以通过邮递员确认),前端应用程序(Vue 和 axios)仍然能够获取更新的数据, 这怎么可能?当我检查 axios 请求时,令牌与我在邮递员中使用的令牌相同,在邮递员中它给我“令牌无效或过期”但在 axios 中它接收所有数据并 200 OK。
这些是配置:
django - DRF:从 API 自定义异常消息
最近我开始更深入地研究 DRF,我想开始自定义通过 API 返回的错误消息以获得不正确的权限,我想包装一些额外的细节。
例如,如果没有为权限受限的端点提供身份验证凭据,API 将返回:
它来自第 171 行rest_framework.exceptions
:https ://github.com/encode/django-rest-framework/blob/master/rest_framework/exceptions.py 。真的,我希望这与
所以,我假设我现在需要开始自定义我自己的异常。
我应该如何最好地做到这一点?
也许它与default_error_messages = {}
序列化程序内部有一些联系......
django - 使用 JWT 身份验证登录后重定向
我正在使用这个库django-rest-framework-simplejwt并希望在成功获取令牌后能够重定向到端点。
我有一个从文档中获取令牌的标准实现
有没有办法改变TokenObtainPairView
函数的操作以重定向到端点?
python - 删除特定 url 路径的身份验证和权限
我正在与 DRF 合作并遇到了这个问题。我有一个第三方视图,我将其导入到我的urls.py
文件中,如下所示:
但我面临的问题是因为我已经启用了默认权限类,settings.py
如下所示:
现在,当我使用 url 调用该视图时,它给了我身份验证错误,因为我没有提供令牌。有没有办法可以绕过身份验证错误而无需直接在视图中进行更改,我知道我们可以删除该权限特定视图,但为此我必须更改该some_view
功能代码。但我不想这样做,假设我们无权访问该功能,我们只能传递数据并接收响应。如何绕过身份验证而不必更改该功能代码。我尝试搜索,但找不到我要找的东西。
我假设我们可以通过某种方式从 urls.py 中做到这一点,例如指定任何参数或类似的东西,使特定视图绕过身份验证而无需更改函数代码。
像这样的东西:
我正在寻找的可能吗?提前致谢 :)
django - rest_framework_simplejwt 发布到 APIView
我有这个设置:
而这个观点:
使用 axios 我管理我的 api 调用,例如:
现在的问题是,我无法发布数据。我收到未经授权的(401) 错误,并在响应消息中显示:{"detail":"Authentication credentials were not provided."}
你能告诉我,我在这里缺少什么,我该如何解决这个问题?