Django REST FrameWork JWT不允许提供数据或解码自身

时间:2018-02-13 12:05:16

标签: python django django-rest-framework jwt

我有这些终点:

urlpatterns += [
    path('api-token-auth/', obtain_jwt_token),
    path('api-token-verify/', verify_jwt_token),
    path('api-token-refresh/', refresh_jwt_token),
    path('api/', include(router.urls)),
]

例如我在后端有一个用户,让我们说他想登录系统。在登录页面中,他必须提供他的用户名和密码,登录页面将使用" obtain_jwt_token"端点,它将自动检查该用户是否存在。如果没有,后端将返回错误消息,如果该用户存在且用户名&密码是正确的,后端将返回由JWT生成的令牌,该令牌将在1小时内生效。但问题是后端不会返回额外的数据,它只会返回令牌本身,而不会返回该用户的ID或其他内容。这就是问题所在。

我理解错了吗?我想要的只是后端不仅返回令牌,还返回该用户的id。或者解码令牌,并从中获取用户的ID。

1 个答案:

答案 0 :(得分:1)

通常,您会在令牌中找到类似用户名或ID的内容。

您可以在客户端轻松解码令牌,它只是简单的JSON格式,Base64编码。 您可以在https://jwt.io上查看您的令牌,了解其中包含的信息类型。

另请查看RFC for JWT:https://tools.ietf.org/html/rfc7519