💡
原文中文,约6400字,阅读约需16分钟。
📝
内容提要
Cookie、Session和Token都是用来认证用户身份的机制,Cookie和Session需要存储在服务器端,Token可以实现跨域的单点登录,但也有一些缺点,应根据不同的业务场景合理选型,以达到最佳效果。
🎯
关键要点
-
Cookie、Session和Token都是用户身份认证机制,Cookie和Session存储在服务器端,Token支持跨域单点登录。
-
Cookie是小型文本文件,用于辨别用户身份和进行Session跟踪,随着请求增多,Cookie体积也会增大。
-
Session机制通过保存用户身份信息的sessionId,减少了Cookie的体积,减轻了请求负担。
-
Session在多台服务器中存在问题,可能导致无法找到session,解决方案包括session复制、session粘连和session共享。
-
Token是一种不需要服务器存储session的身份校验机制,客户端保存token并在请求中携带。
-
Token的校验机制通过签名验证,包含用户ID信息,避免了服务器存储session的开销。
-
Token支持跨域认证和移动端请求,但存在token过长和安全性不足的问题。
-
CSRF攻击是由于浏览器自动带上cookie导致的,使用token可以避免CSRF,但token存储在local storage也存在安全隐患。
-
Session和Token本质上没有区别,选择使用哪种机制应根据具体业务场景合理选型。
➡️