问题标签 [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.

0 投票
0 回答
86 浏览

python - JWT 登录 Django Rest 框架

我正在尝试使用 djangorestframework-jwt 创建登录视图。当我登录我的用户(url 'login/')时,一切正常,但切换到另一个页面(url 'post_list')创建一个帖子我得到了一个我的用户是匿名的错误,所以我决定我的用户再次未经身份验证。您能否帮我创建正确的 JWT 登录视图,让我可以毫无障碍地创建和切换不同的页面?

我的设置.py:

我的序列化器:

我的看法:

网址:

0 投票
2 回答
1509 浏览

django - Django Rest with JWT,获取 AttributeError:无效的 API 设置:'JWT_PAYLOAD_HANDLER'

我正在按照本教程(https://medium.com/@dakota.lillie/django-react-jwt-authentication-5015ee00ef9a)在 Django 中实现基于 JWT 的身份验证。但是,我不断收到我无法弄清楚的错误。

我已经向后看,看看返回的对象是否被使用。

序列化器类:

查看相同:

它应该以 JSON 格式返回令牌但是,我得到的错误是:

用户是在我的数据库中创建的,但它会引发令牌生成错误。我不是这方面的专家。谢谢 !

0 投票
2 回答
1552 浏览

django-rest-framework - 当他从所有浏览器(Django-rest-auth,JWT)更改密码时如何注销用户?

首先,我是新手,django-rest-framework如果我错了,请原谅。

我正在与用户合作django-rest-authdjango-restframework-jwt对其进行身份验证。jwt每次用户登录时,我都会将令牌保存在 localStorage 中。

我现在面临的问题是,当我在两个浏览器中使用相同的凭据登录,然后在其中一个浏览器中更改密码时,另一个帐户仍然有效,即使密码已更改,用户仍然可以导航和查看所有页面.

我想JWT在他更改密码时使他的令牌无效,以便他自动注销。但我在官方文档中找不到让他的令牌过期的方法Django REST framework JWT

我试图通过为用户手动生成一个新的 JWT 令牌来跟踪更改密码的时刻,但这不起作用(可能是因为现有令牌仍然有效)

在阅读了一些文档和帖子之后,这似乎并不容易,jwt因为它是无国籍的,但是有人可以指出我要去哪里吗?

我应该删除JWT身份验证吗?

是否有解决方法可以帮助我解决这个问题?

非常感谢。


编辑:

我在@Travis关于 SO 的类似帖子中发现了一条评论,指出

当用户更改密码时,使令牌失效的一种常用方法是使用密码的哈希对令牌进行签名。因此,如果密码更改,任何以前的令牌都会自动验证失败。您可以通过在用户记录中包含上次注销时间并使用上次注销时间和密码哈希的组合来对令牌进行签名,从而将其扩展到注销。每次您需要验证令牌签名时,这都需要进行数据库查找,但大概您正在查找用户

我正在尝试实现这一点。如果可行,我将更新我的帖子。否则,我仍然愿意接受建议。

0 投票
1 回答
175 浏览

android - 如何在原生应用中处理 JWT 过期机制

我正在 React Native 上构建一个混合应用程序,我们在后端使用 Django rest 框架。我们使用 JWT 来保护应用程序,应用程序的用例涉及存储敏感信息。

问题在于 JWT 到期。我需要使用 accessToken 访问 API 以获取新令牌,这可以正常工作,并且如果用户每天打开应用程序,令牌不会过期,这几乎是不可能的。

因此,用户每隔几天就会注销一次,因为当他打开应用程序时,令牌已过期。有没有更好的方法来处理这个?Facebook 应用程序、谷歌支付​​应用程序永远不会注销用户。

我尝试保留一个与用户关联的变量,暗示他是移动应用程序用户,因此除非他注销或明确这样做,否则该令牌永远不会过期,但我有评论这是一种危险的方法。

0 投票
1 回答
77 浏览

python - 如何在我的视图中从请求对象获取 jwt 有效负载

我在我的项目中使用 django-rest-framework-jwt。我想从视图中的请求对象中获取 user_id。

我试过request.user了,但它返回 AnonymousUser。

0 投票
1 回答
4299 浏览

django - 无法刷新 JWT 令牌“签名已过期。”

我正在为我的 SPA 使用 django-rest-framework-jwt 和 react-redux。

需要 5 分钟后过期的刷新令牌。刷新工作在 5 分钟内。不起作用后,控制台显示此错误:

邮递员展示了这一点:

有中间件的代码

django-rest-framework-jwt 发送一个唯一的令牌,没有刷新令牌

0 投票
1 回答
341 浏览

django - 如何在 Route 中添加 django rest 框架身份验证?

如何在 Route 中添加 django rest 框架身份验证?

我正在使用 JWT 对我的应用程序进行身份验证。一切都很完美。

我需要知道的是如何基于 REST Framework 和 JWT 对特定路由进行身份验证

例子

或者

两者都不起作用。

0 投票
1 回答
1192 浏览

django - Django REST Framework:为什么添加 IsAuthenticated 权限只会引发 500 内部错误而不是 401 / 403 错误?

我最初基于 Django REST 框架的后端 API 在没有实施任何安全措施的情况下工作。

现在我正在实现一个 JWT 令牌身份验证过程,但意识到后端 - Django 方面一直存在的问题是,一旦我将“IsAuthenticated”添加到“ 'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.IsAuthenticated') ”,从 Django 抛出的页面始终是 500 Internal Error,而不是 401/403 Authenticated Error,我可能至少知道如何解决。

因此,我希望有人可以帮助我指出解决问题的方向。


在过去的 5 天里,我一直在尝试实现一个 JWT 令牌、机器对机器验证、零用户帐户,并且纯粹基于令牌授权访问,并且已经整理了大部分前面-通过 Auth0 结束请求访问过程。

我假设的过程基于我从 Auth0 API 中读取的内容:

  1. 客户端浏览器向 Auth0 令牌认证 API 发送请求
  2. Auth0 使用 Token 回复
  3. 客户端浏览器使用回复的令牌作为授权标头发送到后端 API
  4. 服务器 API 回复结果数据。

我意识到的当前问题是,在第 4 步时,我的服务器一直抛出 500 错误而不是 401/403 错误。

我很不确定我可能在哪里出错了,希望有人可以提供一些帮助来添加代码以帮助抛出 Authenticated-Error 响应。


设置.py

意见.PY

设置.py

0 投票
0 回答
704 浏览

python-social-auth - 在 Django 中使用 JWT 进行社交身份验证登录 - 此授权码已过期

我是一个 Python 新手,我想在我的 Django 项目中集成社交登录功能,使用 JWT 身份验证。我使用了这个包,但是这个项目的文档不好。它表明我需要向{ 'provider' : '', 'code' : '' }端点发送一个对象以获取 JWT 令牌。但我无法理解如何为 Facebook、Twitter、Google 等获取此代码。

我通过点击 Facebook oauth url 从 Facebook 获得了一个代码作为响应,但是当我在端点对象中使用它时,它总是显示这个错误:

任何帮助或建议将不胜感激。提前致谢。

0 投票
1 回答
953 浏览

python - 如何在 django-rest-framework-simple-jwt 中使用自定义模型用户

simple-jwt 目前使用超级用户发布令牌,但我想使用我的自定义用户模型。(我定义了自定义用户模型如下。)

我的问题是我可以在 simple-jwt 使用自定义用户模型接收令牌吗?

如果 simple-jwt 使用自定义用户模型,请告诉我如何使用自定义用户模型。