session和token都常常用来作为用户鉴权的机制。
session
部分情况下,当我们提到session鉴权的时候,指的是这样一个流程
用户登录的时候,服务端生成一个会话和一个id标识
会话id在客户端和服务端之间通过cookie进行传输
服务端通过会话id可以获取到会话相关的信息,然后对客户端的请求进行响应;如果找不到有效的会话,那么认为用户是未登陆状态
会话会有过期时间,也可以通过一些操作(比如登出)来主动删除
token
token的典型流程为:
用户登录的时候,服务端生成一个token返回给客户端
客户端后续的请求都带上这个token
服务端解析token获取用户信息,并响应用户的请求
token会有过期时间,客户端登出的时候也会废弃token,但是服务端不需要任何操作
两种方式的区别
session要求服务端存储信息,并且根据id能够检索,而token不需要。在大规模系统中,对每个请求都检索会话信息可能是一个复杂和耗时的过程。但另外一方面服务端要通过token来解析用户身份也需要定义好相应的协议。
session一般通过cookie来交互,而token方式更加灵活,可以是cookie,也可以是其他header,也可以放在请求的内容中。不使用cookie可以带来跨域上的便利性。
token的生成方式更加多样化,可以由第三方服务来提供
发表评论
侧栏公告
寄语
譬如朝露博客是一个分享前端知识的网站,联系方式11523518。
热评文章
标签列表
热门文章
友情链接