session是有些弊端的。
1.session用的是cookie,占用的是服务器的内存资源,资源占用率比较大,随着用户量的增加,服务器的压力会比较大;2.session的安全性比较低,session是基于cookie进行用户识别的,当cookie被截获时,就非常容易受到跨站请求伪造的攻击;3.可拓展性不强,随着用户量的增加,如果使用的是多服务器的负载均衡方案,session的数据是保存在单节点中的,比如第一次请求的是服务器1,当第二次请求的服务器2时,服务器2就获取不到这个session信息了,就会判定用户没有登陆过,而如果我们采用token的认证机制,由于服务器端不保存session信息了,它只会生成token,验证token,我们用服务器cpu的计算时间去换取内存的存储空间,而且即使是使用多台服务器集群,只要每台服务器的处理逻辑算法是一样的,就意味着基于token认证的应用,不需要去考虑用户在哪一台服务器登陆过,这就为应用的拓展提供了便利性,解决了session拓展性差的弊端,综上所述呢,token相比session有三个优点:
1.服务器资源占用率低
2.拓展性强
3.安全性高