【问题标题】:Django Rest Framework JWT - Custom Payload with Extend UserDjango Rest Framework JWT - 具有扩展用户的自定义有效负载
【发布时间】:2018-04-11 00:45:33
【问题描述】:

我有一个带有示例序列化程序的扩展用户(配置文件是扩展用户,而不是抽象用户)

 {
    "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
    }
}

如何使用以上所有字段自定义有效负载并使用axios 获取它? 现在它只是获取有效载荷:

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

我点击了这个链接:#145 但不起作用 请帮帮我!

【问题讨论】:

    标签: python django django-rest-framework django-rest-framework-jwt


    【解决方案1】:

    这是我所做的:

    • 创建你自己的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
          }
      
    • 将您的自定义响应负载处理程序放入您的 settings.py 文件中:

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

    当您登录时,您会返回 tokenuser 以及您的序列化数据。

    【讨论】:

    • 有什么工具可以检查payload是否成功@Gabriel?
    • 我正在使用 django rest framework browsable api,只需在本地运行服务器并转到您的localhost:8000/your_login_url,您将获得一个不错的表单,您可以在其中登录并检查响应。
    • 如果用户更改密码,如何管理,旧令牌将有效权利
    猜你喜欢
    • 2018-12-07
    • 2016-09-12
    • 1970-01-01
    • 2019-06-29
    • 2019-11-20
    • 2020-12-18
    • 2017-02-17
    • 1970-01-01
    • 2013-11-15
    相关资源
    最近更新 更多