在django 1.10 drf jwt response

时间:2017-01-27 20:50:15

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

我一直在摆弄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 个答案:

答案 0 :(得分:0)

我终于弄清楚了:

# myApp/views.py
def jwt_response_payload_handler(token, user=None, request=None):
  return { 'token': token, 'username': unicode(request.data['username']) }