在 django 1.10 drf jwt 响应中返回用户名
Posted
技术标签:
【中文标题】在 django 1.10 drf jwt 响应中返回用户名【英文标题】:Returning username in django 1.10 drf jwt response 【发布时间】:2017-06-13 15:45:34 【问题描述】:我一直在摆弄JWT_PAYLOAD_HANDLER
试图在输出中返回用户名
所以我在我的myApp/views.py
中尝试了这个:
def jwt_response_payload_handler(token, user=None, request=None):
if user and request:
return json.dumps(
'token': token,
'username': str(request.user.username)
)
else:
return 'token': token
然后我在project/settings.py
中尝试了这个:
JWT_AUTH =
'JWT_PAYLOAD_HANDLER':
'myApp.views.jwt_response_payload_handler'
执行 curl 请求我收到错误消息:
TypeError at /api-token-auth/
<User: nunya> is not JSON serializable
我非常接近解决这个问题......但我错过了一些东西。
我错过了什么?
【问题讨论】:
你能发布异常的完整堆栈跟踪吗? 【参考方案1】:我终于弄明白了:
# myApp/views.py
def jwt_response_payload_handler(token, user=None, request=None):
return 'token': token, 'username': unicode(request.data['username'])
【讨论】:
以上是关于在 django 1.10 drf jwt 响应中返回用户名的主要内容,如果未能解决你的问题,请参考以下文章
django drf框架中的user验证以及JWT拓展的介绍
Django Rest Framework(DRF) Json Web Token(JWT) 身份验证和登录过程