问题标签 [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 回答
407 浏览

django - 在 Django REST 框架中使用 JWT 时,刷新令牌和访问令牌存储在哪里?

我正在尝试使用 djangorestframework-simplejwt为我的 Django 休息应用程序实现 JWT。我注意到刷新令牌和访问令牌没有存储在数据库中。那么它们存储在哪里?

提前致谢。

0 投票
1 回答
1099 浏览

django-rest-framework - 对于 Django DRF 后端,一种身份验证方法是否更安全?

我想使用最安全的方法将我登录的用户会话存储在 cookie 中。后端是基于 Django 和 DRF 构建的,所以我在 simplejwt 插件用于令牌身份验证或 djangos 默认 SessionAuth 之间进行选择。前端不是 SPA,但最终也会有一个移动应用程序。所以我一直倾向于令牌身份验证,将它们存储在寿命很短的 httpOnly cookie 中。但在那一点上,我想知道我是否基本上只是以迂回的方式进行会话身份验证?

对于此应用程序,一个比另一个更好(在安全性方面)?

0 投票
1 回答
394 浏览

django - 在 AuthenticationMiddleware 中添加 user_id 属性 | 姜戈

关于 Django 身份验证中间件,我有以下问题:

正如您在此处看到的,中间件从后端调用 get_user 方法(在我的情况下为 simple_jwt)并将此方法放入 a SimpleLazyObject以便稍后进行评估。

我想要做的是保留request.user = SimpleLazyObject(lambda: get_user(request))以便为使用它的应用程序提供用户实例,但对于我的自定义应用程序,我想添加类似

伪代码

为了不查询数据库对用户对象的每个请求,以防我只需要user_id我已经直接 get_user在后端的方法中。

问题 - 如何在不评估的情况下传递 from user_id并将 属性设置为请求 ?get_user()AuthenticationMiddleware.process_request()request.user_idSimpleLazyObject

奇怪的是,我无法将属性分配给请求的 class JWTAuthentication(authentication.BaseAuthentication):归属get_user()

谢谢你。

0 投票
1 回答
288 浏览

django - 从 Django Simple JWT 的 TokenRefreshView 中的刷新令牌中获取用户

我正在尝试在刷新令牌时检查用户是否仍然存在,在刷新令牌时返回用户的更新详细信息(如果已更新)。无论如何从刷新令牌中检索用户的详细信息?[request.user] 当前被标记为 AnonymousUser,因此我无法知道刷新令牌属于谁。

0 投票
1 回答
212 浏览

email - django rest-auth 注册返回“已发送验证电子邮件”,但没有发送电子邮件,也没有发送/返回密钥

我是django、django-rest-framework、django-allaut 和 dj-rest-auth 的新手。我正在使用邮递员注册用户,用户成功保存在数据库中,我收到一条消息说

我的电子邮件配置如下(发送电子邮件验证时都不起作用):第一次尝试

然后尝试:

在我的项目应用程序中,urls.py:

帐户应用程序 urls.py:

设置.py

0 投票
1 回答
532 浏览

django - DRF django-rest-framework-simplejwt JWTAuthentication 不起作用

理想情况下使用django-rest-framework-simplejwt身份验证类,当我错误地传递令牌时JWTAuthentication,API 应该给出。403

相反,当我发出 API 请求时,即使没有身份验证令牌,它也会成功执行。

这是一个虚拟 API,我担心身份验证应该起作用。

我的代码如下所示:

当我调试时,我看到它正在执行 JWTAuthentication,它又返回 None。这是预期的,因为我没有在标头中传递令牌。

现在我认为 View 应该给予 Permission Denied,这并没有发生。

无法理解这里缺少什么。

0 投票
1 回答
85 浏览

django - 生产中的神秘 Django API 行为

长期阅读,但新加入社区。我有一个神秘的问题想寻求帮助。由于这是当前在生产中运行的代码的一部分,我需要编辑部分信息,并在需要时提供信息。如果需要,我还将制作一个新的示例代码,以确保我们都可以测试并指导我以正确的方式解决问题。

目前,有一个 Web 应用程序 (django/wagtail/coderedcms) 后端需要转换为移动应用程序。为了允许移动应用程序与后端服务器通信,我使用 Django-rest-framework 实现了一个 API 端点。为了对用户进行身份验证,我已经使用 Django-rest-simplejwt 实现了一个简单的身份验证端点。这部分工作正常。该应用程序的要求之一是用户必须能够通过移动应用程序查看/更新他们的个人资料。

在我的本地主机中的开发服务器中工作时,行为符合预期,每个用户都可以使用应用程序登录,后端将发送回一个令牌,随后将使用 tokan 访问应用程序的各个部分。

当在生产中实现相同的代码库时(当前处于 UAT 阶段)发现一个行为,如果多个用户同时登录,服务器将仅返回第一个请求配置文件的用户的配置文件。
含义:
用户 A 登录 ....
用户 B 登录 ....
用户 B 请求查看他的个人资料(显示个人资料 B)
用户 A 请求查看他的个人资料(显示个人资料 B)<- 正确的行为应该是显示配置文件 A

这让我感到困惑,因为在本地主机上进行测试时,行为是:
用户 A 登录 ....
用户 B 登录 ....
用户 B 请求查看他的个人资料(显示个人资料 B)
用户 A 请求查看他的个人资料(显示配置文件 A)

我不知道这是由于 docker、nginx 还是 django 生产设置造成的。
但是,现在我只能缩小到 Nginx 和 docker,因为我在 localhost 中使用相同的配置,除了 debug=true 状态。

任何帮助或指针都会很有用。

我提前感谢所有阅读并回答这个愚蠢但神秘的问题的人

真诚的,
阿什拉夫

编辑

回复 Ogulcan Olguner

来自生产服务器的 Postman 在标头中使用此响应

对于本地主机

0 投票
1 回答
78 浏览

reactjs - 在尝试使用 DRF 获取数据时,在 axios GET Response 中接收纯 Js 代码文件以做出反应

当我从我的 React 前端向 Drf 后端发出 Get 请求时,我遇到了这个问题,假设在我使用 Redux 调度时获取用户详细信息并将其设置为状态,但是来自后端的响应是纯 Js 代码文件或索引.html 文件,我们假设在运行 React With Django 时在 build 文件夹中拥有该文件。

这是 Django 加载构建文件的 index.html 的 URLs.py 模板视图设置

这是应用程序的 urls.py

当我提出请求时,我得到的代码文件,

而不是上面的代码,我应该得到用户详细信息任何帮助都非常感谢!谢谢

0 投票
1 回答
660 浏览

django-rest-framework - Django Rest 框架面板 - 登录和注销不适用于 Simple JWT

我正在使用 DRF 创建一个后端 api。我创建了一个自定义用户模型,我使用 allauth 和 dj-rest-auth 进行身份验证。到目前为止一切顺利,我还在我的网址中添加了这条路径,以便 DRF 面板允许我登录和注销:

当我还添加 Simple JWT 时,就会出现问题。登录/注销功能不再起作用,我只能通过 dj-rest-auth 路径执行身份验证。

有谁知道是否可以让 DRF 标头执行注销/登录?我得到的错误是这样的,即使提供了正确的凭据:

0 投票
0 回答
89 浏览

python - 在 django rest 框架中使用 simple_jwt 在一段时间不活动后注销用户

我正在使用 django rest 框架并尝试实施安全解决方案。用户必须在一段时间不活动后再次登录。

现在我正在尝试操作 django rest 框架的设置,我更新了REFRESH_TOKEN_LIFETIME

设置.py