简体   繁体   English

Django Rest Framework JWT-具有扩展用户的自定义有效负载

[英]Django Rest Framework JWT - Custom Payload with Extend User

I have an Extended User with sample serializers (Profile is Extend User, not Abstract User) 我有一个带有示例序列化程序的扩展用户(配置文件是扩展用户,而不是抽象用户)

 {
    "id": 3,
    "url": "http://localhost:8000/api/v1/users/demo/",
    "username": "demo",
    "first_name": "First",
    "last_name": "Demo",
    "profile": {
        "gender": null,
        "location": "Sa Pa",
        "date_of_birth": null,
        "job_title": null,
        "phone_number": null,
        "fax_number": "",
        "website": "",
        "intro": "",
        "bio": "",
        "interested_in": null,
        "languages": null,
        "quotes": null,
        "nickname": null
    }
}

How can I custom payload with all above fields and get it with axios ? 如何自定义上述所有字段的有效负载并通过axios获得它? Now it just get payload: 现在,它仅获得有效负载:

authUser:Object
email:"test@gmail.com"
exp:1509183691
user_id:1
username:"First Demo"
token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImxlY29uZ3RvYW4iLCJ1c2VyX2lkIjoxLCJlbWFpbCI6ImRyYWZ0bGlnb25ncXVhbjdAZ21haWwuY29tIiwiZXhwIjoxNTA5MTgzNjkxfQ.KSEp-7g-SGDbqfspedNwkT1rABFi0UQ45yKDJDTX2zA"

I followed with this link: #145 but isn't work Please help me! 我点击了以下链接: #145但不起作用,请帮助我!

Here is what I did: 这是我所做的:

  • create your own jwt_response_payload_handler : 创建自己的jwt_response_payload_handler

     from your_serializers import UserSerializer def jwt_response_payload_handler(token, user=None, request=None): return { 'token': token, 'user': UserSerializer(user, context={'request':request}).data } 
  • put your custom response payload handler into your settings.py file: 将您的自定义响应有效负载处理程序放入您的settings.py文件中:

     JWT_AUTH = { ..., 'JWT_RESPONSE_PAYLOAD_HANDLER': 'path_to.jwt_response_payload_handler', ... } 

When you login you get back token and user with your serialized data. 登录时,您将获得token和具有序列化数据的user

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM