Django Rest Framework JWT - 带有扩展用户的自定义负载
Django Rest Framework JWT - Custom Payload with Extend 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
}
}
如何使用 以上所有字段 自定义负载并使用 axios
获取它?
现在它只获取有效载荷:
authUser:Object
email:"test@gmail.com"
exp:1509183691
user_id:1
username:"First Demo"
token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImxlY29uZ3RvYW4iLCJ1c2VyX2lkIjoxLCJlbWFpbCI6ImRyYWZ0bGlnb25ncXVhbjdAZ21haWwuY29tIiwiZXhwIjoxNTA5MTgzNjkxfQ.KSEp-7g-SGDbqfspedNwkT1rABFi0UQ45yKDJDTX2zA"
我跟着这个 link: #145 但是没用
请帮助我!
这是我所做的:
创建你自己的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',
...
}
登录后,您会返回 token
和 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
}
}
如何使用 以上所有字段 自定义负载并使用 axios
获取它?
现在它只获取有效载荷:
authUser:Object
email:"test@gmail.com"
exp:1509183691
user_id:1
username:"First Demo"
token:"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImxlY29uZ3RvYW4iLCJ1c2VyX2lkIjoxLCJlbWFpbCI6ImRyYWZ0bGlnb25ncXVhbjdAZ21haWwuY29tIiwiZXhwIjoxNTA5MTgzNjkxfQ.KSEp-7g-SGDbqfspedNwkT1rABFi0UQ45yKDJDTX2zA"
我跟着这个 link: #145 但是没用 请帮助我!
这是我所做的:
创建你自己的
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', ... }
登录后,您会返回 token
和 user
序列化数据。