在 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 响应中返回用户名的主要内容,如果未能解决你的问题,请参考以下文章