问题标签 [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.
django - 实现自定义 JSONWebTokenSerializer 时,有效负载中缺少 Orig_iat
我正在实现一个自定义 JSONWebTokenSerializer。到目前为止它工作正常,但我需要启用令牌刷新,但是当我这样做并尝试刷新令牌时,我收到验证错误orig_iat field is required
。在检查从 返回的有效负载时jwt_payload_handler
,没有任何orig_iat field
属性。
这是我的JWT_AUTH
设置:
python - 如何在 Django Rest-Framework 中添加电子邮件验证?
我在 Django 中添加了电子邮件验证或电子邮件发送选项,但在 Rest 框架中,当我尝试从序列化程序类发送电子邮件时,它没有响应。有人给我一些想法,我该怎么做?
我的 Views.py 代码是:
我的 serializers.py 代码在这里:
我不知道如何向用户发送电子邮件以让用户知道他们的帐户已成功创建。我尝试在序列化程序中编写代码,但它不起作用。
django - 使用 simplejwt 模块在 django 中修改 jwt 访问令牌到期时间
我已经尝试过这段代码(按照这个链接:我们如何在 django 的 jwt 令牌中为不同的用户分配不同的到期时间)。此代码更新刷新令牌的到期时间,但我想使用 simplejwt 模块更新 django 中访问令牌的到期时间。请有任何建议。
django - 如果他/她尝试在不同的浏览器上登录,我们是否可以避免为单个用户生成多个令牌?
我在后端使用 django-rest-framework-jwt 并从 Angular 项目调用 API。当用户尝试登录多个浏览器时,每次在新浏览器上为用户生成一个新令牌。每个令牌都是有效的。我想要的是,当用户已经在一个浏览器中登录并且他/她尝试在第二个不同的浏览器上登录时,第一个浏览器的先前令牌应该无效。
python - 在序列化程序 Django Rest + Django JWT 中获取记录的用户信息
我需要在 ModelSerializer 上的已登录用户中获取 FK 信息以添加新模型。
在这种情况下,用户-> 业务和客户-> 业务。发布客户端时,我需要使用登录的用户业务设置业务 ID。
重要的是要说所有其他模型具有相同的行为。我正在为这个问题寻找一些通用的解决方案。
客户模型
用户模型
客户端序列化器
django - 如何在密码重置时撤销刷新令牌?
我正在使用django-rest-framework-simplejwt来获取access token
和refresh token
.
问题是,refresh token
如果我更改用户的密码,它不会变得无效。refresh token
基本上,即使用户更改了密码,我也可以继续发送和获取新的访问令牌。
我想要的是要求用户重新提交用户名和新密码以获得一对新的access
and refresh tokens
。
我将如何做到这一点?
PS:只是因为我很好奇,这不应该是库的默认行为吗?在什么情况下我们希望保留refresh token
凭证更改后的内容?
django - 如何在 Django Rest Framework 中使用 JWT 令牌?
我是 django 和 DRF 的新手,我正在尝试使用 JWT 构建一个身份验证系统,我想在注册后直接登录用户,我阅读了文档,我设法手动创建了一个令牌并在我的序列化程序中返回它,但我的问题是这样的:
1)如何使用此令牌查看用户是否登录?
2) 我可以在模板中使用 {% if user.is_authenticated %} 吗?如果是这样怎么办?
3)如何在另一个视图中获取用户登录信息?
4) 有没有更有效的方法来处理 DRF 的身份验证?
vue.js - 使用 Django Rest Framework、JWT 和 Vuejs 获取经过身份验证的用户信息
我正在使用 DRF 作为后端和 Vuejs 作为前端来构建一个应用程序,我已经设法在 DRF 中使用 JWT 令牌创建了身份验证系统,但是我很难尝试获取经过身份验证的用户信息。当我注册我存储的用户时,本地存储中的令牌为
但是,当我尝试获取用户信息时,发送带有授权标头的 http get 请求,我收到 401 禁止错误
这是我的代码:我使用 axios 像这样设置标头授权
const token = localStorage.getItem('user-token')
if (token) {
axios.defaults.headers.common['Authorization'] =
基本 ${token}
}
vue中的get请求
我的观点.py
我的序列化器
当我删除权限类时,我得到一个空的用户名字段作为响应,否则它是前面提到的 401 错误。我可以看到授权标头是在浏览器中发送的。请问有什么解决办法吗?
我的设置.py
]
]
}
JWT_AUTH = { 'JWT_ENCODE_HANDLER': 'rest_framework_jwt.utils.jwt_encode_handler',
}
django-rest-framework - 如何在 perform_create 视图集中添加用户(django rest 框架)?
我想做一个“评论”表。在表上,将有一个包含创建评论的 user_id 的字段。与评论表相关的用户来自 Django 默认用户模型。这是评论模型:
这是评论序列化程序:
这是创建新评论的视图集:
我还将用户与 django rest jwt 集成以进行授权。这是我发送到 API 的标头和数据。
标题:
授权:不记名{jwt token}
内容类型:应用程序/json
身体:
{ "content": "这是评论" }
但我得到了这个回应:
{ "user": [ "此字段为必填项。" ] }
如何修复序列化程序,以便从令牌(request.user)中检索用户?
django - 使用 djangorestfrfamework-simplejwt 注册用户时生成 jwt
嗨,我正在玩django
并djangorestframework-simplejwt
编写了一个简单的应用程序来注册用户。现在看来,通过阅读文档和在线搜索,生成令牌的唯一方法是将用户名和密码传递给 url url(r'^api/token/$', TokenObtainPairView.as_view(), name='token_obtain_pair')
。所以看来我必须先创建用户,然后在成功创建用户后将用户名和密码再次发送到 url 以生成令牌。但是我希望能够在创建用户时创建一个令牌,而不必在创建用户后重新发送用户名和密码。注册用户时是否更容易生成 jwt。