面试题答案
一键面试- 无需在服务器端存储状态:
- 传统Session认证:服务器需在内存或数据库等存储介质中保存用户会话信息,跨域时不同域可能有不同服务器,需解决会话数据共享问题,增加复杂度与成本,如通过分布式缓存(如Redis)实现会话共享,配置与维护较复杂。
- JWT认证:JWT包含用户身份与权限等信息,服务器无需存储状态,跨域请求时不同域的服务器都可独立验证JWT,简化跨域处理流程。
- 便于跨域传输:
- 传统Session认证:依赖Cookie传递会话标识,浏览器遵循同源策略,跨域时Cookie默认不能在不同域间传递,需通过复杂配置(如设置CORS允许跨域携带Cookie),且有安全风险。
- JWT认证:通常在请求头(如
Authorization: Bearer <JWT>
)或URL参数中传递,不受同源策略对Cookie的限制,可轻松在跨域请求中传递,只要请求能携带JWT,接收方就能验证,更灵活方便。
- 更好的扩展性:
- 传统Session认证:随着系统规模扩大与跨域场景增多,维护会话一致性与处理跨域问题成本剧增,分布式环境下会话同步与管理难度大。
- JWT认证:各服务器独立验证JWT,无需依赖共享会话存储,易于扩展到多个不同域的服务器或微服务架构中,适应高并发与大规模跨域应用场景。