Django / DRF / JWT在验证令牌时没有进入数据库,但request.user有所有细节吗?

时间:2017-06-22 17:57:53

标签: django django-rest-framework jwt

怎么可能

  1. JWT没有通过数据库来验证用户
  2. request.user是一个功能齐全的对象,其中已填充了所有字段。
  3. 哪一个是真的?

    1. 数据库 使用
    2. User的每个字段都会编码到令牌上,并在请求时解码,以便可用。

1 个答案:

答案 0 :(得分:1)

第二个选项的排序为真。

JWT基于例如userpassword生成令牌。当从客户端收到时,服务器对其进行解码,并验证收到的信息。

这是一个很好的图表:

enter image description here

如果您转到https://jwt.io/中的调试器,您将看到令牌的组成。 HEADER - PAYLOAD - 验证签名。如果您需要深入解释,可以启动here

对于DRF-JWT,您可以在here中看到jwt令牌的有效负载是如何形成的。