问题标签 [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 投票
1 回答
845 浏览

django-rest-framework - 用于 REST API 密码重置的 Django 表单

我的情况:

Django 应用程序 + 移动应用程序,使用 Django REST api 和 rest-auth。我想实现密码重置交易,在移动应用程序上启动。

我遵循的工作流程是:

1)从手机执行密码重置请求-> OK,没问题

2) Django 向用户发送电子邮件 -> 好的,没问题

3) 转到电子邮件链接页面并创建新密码 -> 好的,没问题 但是创建新密码的表单是 REST framework API 表单

问题

1) 我可以自定义这个表格吗?我不知道该怎么做,因为这个 URL 是可变的(带有 UID 和令牌)。有什么建议么?

2) 此工作流程是否合适,或者是否有更好的方法来管理重置密码工作流程?

在我的 URL 文件中,我有:

我应该在这里创建一个自定义视图吗?

在 Django REST 文档中,它说 REST 框架适用于返回 API 样式响应和常规 HTML 页面。但我找不到一个合适的例子来帮助我解决我的问题。

0 投票
1 回答
876 浏览

django - DRF 如何为基于 JWT 的身份验证关闭 CSRF-token 检查?

我正在使用带有JWT 的 Django Rest Framework 作为身份验证机制。据我了解,只要令牌未存储在 cookie 中,使用 JWT 身份验证就不需要进行 CSRF 令牌检查。

但是,检查django-rest-framework-jwt代码和 DjangoCsrfViewMiddleware我不明白代码的哪一部分关闭了基于 JWT 的身份验证的 CSRF 令牌检查。

有人知道并且可以指出代码的相关部分吗?

0 投票
0 回答
47 浏览

django - 如何使用 django rest_auth 获得像 xyz.com/template.html/?token=&uid=/ 这样的 url 格式

我正在制作程序,每当用户忘记密码时,他会在输入电子邮件 ID 后收到一封电子邮件。这件事正在奏效。它甚至在邮件中发送 url,一切正常。但目前我在电子邮件中的网址是这样的。

http://127.0.0.1:8000/account/reset/MTg/4z1-d4e4774f2d5b3cad07a9/

但我希望我的网址采用格式。

http://127.0.0.1:8000/account/reset/?uid=xyz&token=bdfjkdbfkjdbf。

这只是一个示例:我可以将该帐户/重置更改为我的模板。那将完成。但我想要的是它的格式应该是这样的。这只是一个粗略的想法。最重要的事情之一,我只想使用 django-rest-auth。我没有使用其他任何东西。

0 投票
1 回答
1121 浏览

django - 使用 Django REST JWT 登录

我有两个应用程序的 Django 项目。第一个应用程序是基于默认 Django 身份验证机制的简单登录/注册应用程序。它有两种形式,成功登录或注册后将被重定向到我的第二个应用程序。所以,我的第二个应用是基于 Vue.js 的单页应用。

我还使用了 djangorestframework 和 djangorestframework-jwt 包。

我了解 JWT 是如何工作的,但我不明白如何将它实施到我的项目中。例如,这是在我的视图中从登录表单发出 POST 请求后执行的代码的一部分:

所以,我得到了下一个问题:

  1. 成功登录后(重定向前)我应该怎么做才能制作令牌并发送响应
  2. djangorestframework-jwt 提供包含在 url 中的视图

    那么,我应该在哪里调用 gain_jwt_token?成功登录后在 SPA 中?

  3. 为了使用 JWT,我应该为用户模型创建序列化程序吗?
  4. 在没有 RESTful 支持的情况下使用 *rest-jwt 是否正确?
0 投票
1 回答
1695 浏览

django - Django Rest Framework JWT 未提供身份验证凭据

我在带有 Typscript 前端的 Django rest 框架中使用 JWT 实现令牌身份验证时遇到问题。我越来越

{详细信息:“未提供身份验证凭据。”}

通过 Typescript 调用我的 API,即:

登录工作正常。当我尝试加载我遇到问题的项目时。

这是我的 Django 代码:

视图.py

项目/urls.py

项目/urls.py

设置.py

我认为问题必须与 Django 相关,但我能够得到我所期望的

如果我的后端设置不正确,这将无法正常工作。所以它一定是我的前端代码。

0 投票
3 回答
15669 浏览

django - 注销 Django Rest 框架 JWT

我想问一下在我使用 JWT 时注销是否是个好主意。为了登录,我发送一个带有用户名和密码的 post 请求以获取所需的令牌(保存到 localStorage),这将允许我向需要令牌的视图发送进一步的请求,当然。

但我不确定我应该如何注销用户。我可以清除 localStorage,但令牌仍然可用。

所以,我想问我是否应该使用刷新令牌,因为我无法禁用它。

0 投票
2 回答
1606 浏览

vue.js - Handling CSRF token when working with Django Rest Framework JWT

Having the JWT token required for every request to the API, should I keep CSRF protection? Considering no one has access to other's jwtoken, of course.

If yes, how could I get the csrf token since I don't use django templates (I'm using Vue separately).

If not, is it ok to completely delete the CSRF middleware from settings?

Thanks in advance.

0 投票
1 回答
354 浏览

django - Django REST JSONWebTokenAuthentication + Angular(未提供授权细节)

几天来,我一直试图让这个相当简单的身份验证设置工作。

我正在使用 Django REST 插件“django-rest-framework-jwt”进行 JSON Web 令牌身份验证。

卷曲 API 时,它按预期工作。

在此处输入图像描述

但是,当通过我的 Angular 应用程序发出请求时;我经常收到未经授权的错误,其中包含“未提供授权详细信息”的详细信息。但是,在抓取请求时,可以清楚地看到它存在(请求中的令牌是有效的,因为我在 CURL 中使用了它:

在此处输入图像描述

我正在通过我编写的拦截器注入身份验证标头;看起来像这样:

此外,JWT_AUTH 设置的设置定义如下:

框架设置如下:

对此有何建议?我不确定这里发生了什么。

编辑

网络选项卡中的请求/响应标头:

在此处输入图像描述

0 投票
1 回答
75 浏览

django - Django 用户名/密码和 api 密钥 JWT 身份验证

我有一些要求,我需要能够使用username/password或使用 an对用户进行身份验证,api_key并为这两种情况返回 JWT 令牌。

我使用用户名/密码的方法:

其中jwt_payload_handler实现为:

我的问题之一是关键字 username 是否需要在有效负载中才能使令牌有效

考虑到密钥与用户无关,在 api_key 的情况下,一个好的方法是什么?

如果提供的 api_key 正确,我应该创建一个将在有效负载中使用的默认用户吗?

有什么建议么?

0 投票
3 回答
904 浏览

python - 使用 django 和 JWT 在 N 分钟后重新登录

场景:我希望用户在N分钟后通过安全敏感区域时重新登录,例如当用户即将支付订单时,但他在1小时前登录,我想确定是他。这通过使用rest_framework_jwt.

详细描述:

我最近一直在测试django 现代 Web 开发(所以,后端使用 rest-api)。但是,我遇到了一个尚未找到解决方案的问题。

rest_framework_jwt您设置身份验证类如下。

这将为通用目的做一个伟大的工作。但是,我希望用户在登录后 10 分钟进入带有敏感信息的区域时重新识别(重新登录),例如敏感信息可以是支付区域。因此,我想向 Authentication 类发送一个参数,告诉用户在一个合理的区域。

我认为可能的解决方案,但我还不知道该怎么做,是: The在使用 option 时rest_framework_jwt创建变量。我可以向身份验证类发送一个标志来告诉当前视图是否是敏感区域,如果是这样并且用户在 10 多分钟前登录,我可以发送一条消息说用户需要重新登录才能继续.orig_iatJWT_ALLOW_REFRESH

我不介意分叉rest_framework_jwt项目并根据我的目的对其进行调整,但是我想知道如何将参数从视图发送到身份验证类(在本例中为:)rest_framework_jwt.authentication.JSONWebTokenAuthentication

另外,如果已经rest_framework_jwt为这种情况做了一些事情,我想避免重新发明轮子。