我正在研究 JWT 作为传统基于cookies的session的替代方案,但我看不出它们与Express通过中间件例如cookie-parser提供的签名cookie有什么根本区别。
两者都将负载的最后一部分作为签名,以确保负载没有被篡改。
签名cookie:
user=tobi.CP7AWaXDfAKIRfH49dQzKJx7sKzzSoPq7/AcBBRVwlI3
等效的JWT:
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyIjoiVG9iaSJ9.kCTlR_Igb4H5cqBEDedShM2ivSQijPQkWqN4pZAXb2g
除了以下事实之外:(1)JWT没有来源限制;
(2)Cookie内容立即可读取,而JWT内容(标头+有效负载)是Base64编码的。
还有什么可以使JWT比签名Cookie具有明显优势的吗?