【问题标题】:Django REST FrameWork JWT does not allow to provide data or decode itselfDjango REST FrameWork JWT 不允许提供数据或自行解码
【发布时间】:2018-07-23 19:14:53
【问题描述】:

我有这些端点:

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 小时。但问题是后端不会返回额外的数据,它只会返回 Token 本身,而不是那个用户的 id 或其他东西。这就是问题所在。

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

【问题讨论】:

  • 非常感谢先生,你应该把它当作一个答案!
  • 谢谢马迪,很高兴我能帮助你

标签: python django django-rest-framework jwt


【解决方案1】:

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

您可以在客户端轻松解码令牌,它只是简单的 JSON 格式,Base64 编码。 您可以在https://jwt.io 上查看您的令牌,看看里面有什么信息。

检查 JWT 的 RFC:https://www.rfc-editor.org/rfc/rfc7519

【讨论】:

    猜你喜欢
    • 2018-02-25
    • 2019-02-19
    • 2019-02-12
    • 1970-01-01
    • 2019-07-19
    • 2021-06-19
    • 1970-01-01
    • 2022-11-01
    • 2015-09-25
    相关资源
    最近更新 更多