【问题标题】:Returning username in django 1.10 drf jwt response在 django 1.10 drf jwt 响应中返回用户名
【发布时间】:2023-03-14 05:35:01
【问题描述】:

我一直在摆弄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

我非常接近解决这个问题......但我错过了一些东西。

我错过了什么?

【问题讨论】:

  • 你能发布异常的完整堆栈跟踪吗?

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


【解决方案1】:

我终于弄明白了:

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

【讨论】:

    猜你喜欢
    • 2020-07-23
    • 2017-10-09
    • 1970-01-01
    • 1970-01-01
    • 2021-07-25
    • 1970-01-01
    • 2018-04-30
    • 1970-01-01
    • 2013-04-09
    相关资源
    最近更新 更多