问题标签 [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.
python - Django Rest Framework 的 @api_view 装饰器的使用和神秘的 bug
我遇到了这个奇怪的错误,我的代码昨天运行良好(通过自动化测试)但今天就坏了。基本上,感觉好像@api_view 装饰器坏了,无法申请一个方法。情况如下:
我有一个名为“advance_orders”的方法,它的包装如下:
注意: hack=True 是我在第一次发现错误后为调试目的而添加的一个小功能。
这些方法在这里@check_wallet_token
也@disallow_disabled_users
无关紧要,我 99.99% 确定它们不是错误的来源(因为它们昨天工作罚款和在/在其他类似包装的方法中)
到函数的 url 映射是:
re_path(r'^vendor/orders/advance/$', vendor.advance_orders, name='advance_order'),
现在,在某个测试中,我有:
测试失败并在打印我发现的响应文本时:
{"detail":"Method \"POST\" not allowed."}
这没有任何意义!除非我做错了什么,我很确定我不是。
++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++++++++++++++++++++
现在是我收集更多证据的时候了。我进入安装在我的虚拟环境中的 DRF 的源代码并修改两种方法以打印出额外的调试信息。
在views.py中我改变views.APIView.dispatch()
如下:
我修改的另一种方法是decorators.api_view()
:
./manage.py test Wallet.tests.test_api_vendors.API_VendorTestCase --failfast
现在我使用并打印我们的结果来运行我的测试:
这让我非常困惑,因为这意味着装饰器认识到我想要允许“POST”方法,但是当我的视图“advance_order”被执行时,“POST”不包含在允许的方法列表中。
所以我的问题是:是我的错误吗?如果是这样,怎么做?否则,我能做些什么来解决这样的问题?(删除 __pycache__ 文件不起作用)。
PS为这个非常冗长的问题道歉,我只想非常清楚我的问题。
django - 获取使用 JWT 返回的用户 ID
早上好,
我正在编写我的第一个 DRF API,并且正在使用 django-rest-framework-jwt ( https://getblimp.github.io/django-rest-framework-jwt/ ) 来处理 JWT 身份验证。
我目前正在使用内置视图:
但需要将一些用户信息返回给 UI(VueJS)。我想将用户 ID 和名称信息存储到 Vuex 存储中,以传递给后续 API 调用并呈现给用户(“Hello Jim!”)。
我发现这个讨论为 jwt 有效负载响应添加自定义函数: jwt rest framework return user id with token
我不确定在哪里做这个虽然......
感谢您帮助澄清。
BCBB
reactjs - 我需要在客户端检查 JWT 过期吗?
我正在使用 Django REST 框架、react 和 redux 开发网站,例如分类广告。我有一个关于 JWT 身份验证的问题。我想使用 djangorestframework_simplejwt 进行身份验证,并且我检查了一些教程。我看到很多教程都在客户端检查访问令牌,如下所示
并刷新令牌。但我不知道为什么。因为每次我们收到带有过期访问令牌的 HTTP 401 Unauthorized 错误时,只需使用刷新令牌请求新的访问令牌。
我认为的工作流程是
- 向服务器发送带有访问令牌的请求,以获取只有经过身份验证的用户才能看到的页面。
- 如果访问令牌过期,前端将收到 HTTP 401 Unauthorized 错误。
- 向服务器发送带有刷新令牌的请求以获取新的访问令牌,然后前端将其存储到 localStorage。
- 再次发送请求。
这是不好的方式吗?
我为我糟糕的英语道歉......
django - Django Rest 框架:JWT 授权失败
我有一个用 Django REST Framework (DRF) 编写的应用程序。此外,还有这样的注册端点:
此外,还有一些端点需要授权。
所以,我正在尝试使用curl
客户端提取我的令牌:
它返回如下内容:
然后,使用我想登录的这个令牌,使用令牌:
它返回403 (Forbidden)
CSRF 验证失败。请求中止。
为什么我做错了?
这里有一个有趣的点:
对令牌的每个请求都会为同一个用户:密码对返回一个新令牌(是预期的还是我的令牌过期太快)?
django - 如何使用 msg.send() 在 django 的 html 电子邮件模板中传递用户名
我是 Django 编码的新手。我目前正在研究 DRF Django Rest Framework 以及 API。我一直在尝试在用户注册后立即发送带有附件的 HTML 电子邮件模板。我已经实现了发送相同的功能,但我想将动态内容(如注册用户的电子邮件)从 views.py 传递到 HTML 电子邮件模板,但无法做到。我正在使用 msg.send()。
在 VIEWS.PY 中:
在 HTML 模板中:
django - 从 Django Rest Framework SIMPLE JWT 令牌(第 3 方)获取中间件中的用户名
我正在使用 Django Rest Framework,并且包含了一个名为REST framework simple JWT Auth的第 3 方包,它是引用的新框架,而这个REST framework JWT Auth是旧的(我想象的),因为有很长一段时间没有在 github 上更新,可能不支持较新的版本。
我正在寻找一种方法,例如stackoverflow-3rd answer 上的这个链接,通过中间件获取每个请求的用户信息,以便在需要时通过使用 django 信号在我的模型中应用/保存用户对象. 我检查了文档和互联网,但我没有找到任何东西。因此,如果您已经有这种情况,我将感谢您的帮助。
谢谢
django - Django rest framework JWT ,删除 jwt 令牌
如何手动使 django rest 框架 JWT 令牌过期?因为它不将令牌存储在数据库中。有没有正确的方法使令牌过期?
我正在考虑继续使用中间件,每个用户都将存储令牌。在每次登录请求时,我们都会为用户更新数据库中的令牌。在每个请求中,我们将从请求中获取令牌并与存储的令牌进行比较,如果不匹配,则我们将返回禁止。我不知道它是否正确!
python - 如何从 django restframwork 返回带有 400 bad request status code 的响应消息?
Python Django 中的代码:
javascript中的代码
它在 200 ok 时返回代码,但在 400 错误请求时不返回任何内容。事实上,除了 200_ok 代码之外,似乎没有任何回复消息。有什么解决办法吗?
python - Django JWT Auth - 过滤特定用户的响应
我正在我的 Django 项目中实现 JWT 身份验证,目前我被困在我想通过我的 JWT 过滤响应数据的部分。
我想在我的 Django 视图中获取涉及经过身份验证的用户的特定数据。我怎样才能得到这个过滤的数据?
这是我的设置视图的示例。
视图.py
网址.py
序列化程序.py
设置.py
}
这是我用来从服务器获取响应的 curl 命令:
作为回应,我得到了所有用户的所有设置。我只想获取经过身份验证的数据。
python - 自定义 Django Rest JWT 登录
我正在尝试为 django rest api 身份验证编写自定义 jwt 登录视图。但它不起作用,我不知道为什么。你能帮我修复这段代码或举一些例子。提前致谢。
我的序列化器:
我的观点: