【发布时间】:2017-07-10 08:57:20
【问题描述】:
我正在阅读 JWT,有太多的教程和太多的方法,令人困惑。
我有几个关于正确使用 JWT 的问题:
1) 我一直看到在服务器之间传输 JWT 的方式不一致。 For example, here:一种用于检索令牌的传输方法(通过 POST 正文中的 JSON 编码对象),另一种用于提交它的方法(通过 HTTP 标头)。为什么会有这种不一致?当然,由实现者来选择方法,但至少保持一致并仅使用标头或仅使用正文不是一个好习惯吗?
2) JWT 有效负载包含状态信息,因为服务器没有维护它。很明显,应该将有效负载的大小保持尽可能小,因为 JWT 的大小会添加到每个请求和响应中。也许只是一个用户 ID 和缓存的权限。当客户端需要任何信息时,它可以通过(通常是 JSON 编码的)HTTP 正文接收它并将其存储在本地存储中,似乎不需要出于相同目的访问只读 JWT 有效负载。那么,为什么要保持 JWT 有效负载不加密呢?为什么混合使用两种获取应用程序数据到客户端的方式并同时使用 JWT 有效负载和正常的 data-in-response-body ?最佳实践不应该是保持 JWT 始终加密吗?无论如何只能在服务器端更新。
【问题讨论】: