首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在django-rest-framework-jwt中存储更多的默认信息

在django-rest-framework-jwt中存储更多的默认信息
EN

Stack Overflow用户
提问于 2016-02-06 09:26:20
回答 2查看 3.4K关注 0票数 5

我使用Django版本1.8,并使用django-rest-framework进行身份验证。身份验证之后,我们的应用程序将返回到前端,并提供以下信息:

代码语言:javascript
复制
from rest_framework_jwt.settings import api_settings
from rest_framework.response import Response
from django.contrib.auth.models import User


jwt_payload_handler = api_settings.JWT_PAYLOAD_HANDLER
jwt_encode_handler = api_settings.JWT_ENCODE_HANDLER

user.profile_picture = "test_profile_picture.jpg" #user is django.contrib.auth.models.User object
payload = jwt_payload_handler(user) 
token = jwt_encode_handler(payload)

 jwt_login_response = {
        "token": token
 }

return Response(jwt_login_response,status=status.HTTP_200_OK)

在前端,我们将通过

代码语言:javascript
复制
import jwtDecode from 'jwt-decode';
var decodedToken = jwtDecode(token);

但是目前decodedToken只包含django rest-framework-jwt默认的值。

代码语言:javascript
复制
Object {username: "test", user_id: 9, email: "test@gmail.com", exp: 1454754137}

我想像profile_picture一样在jwt中存储更多的信息,但我不知道如何存储。我真的很想找到解决这个问题的办法。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-09 00:24:26

可以用设置覆盖附加到令牌的有效负载。

正如您已经注意到的,默认实现包括usernameuser_idemailexp (过期时间)。您可以找到默认的实现论GitHub

票数 7
EN

Stack Overflow用户

发布于 2016-02-12 07:15:43

我认为您需要的是一个自定义的用户模型。您可以通过创建一个包含所需字段的新模型来创建该模型,并通过一-一关系将其引用到默认的用户模型。

此链接可能会有所帮助- http://blog.mathandpencil.com/replacing-django-custom-user-models-in-an-existing-application/

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35239401

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档