美文网首页
token cookie sessioId

token cookie sessioId

作者: 2020路飞 | 来源:发表于2020-07-20 08:48 被阅读0次

对于 session 来说,服务器是有状态的。这个事情就很麻烦,尤其是在分布式部署服务的时候,需要共享服务器之间的状态。总不能让用户不停重复登陆吧?虽然专门准备一个服务器用来处理状态是可行的,但是能不能让服务器变成无状态的,还不能像单纯 cookie 那么蹩脚?

token 就解决了这个问题。

它将状态保存在客户端,并且借助加密算法进行验证保证安全性。整体流程总结如下:

  1. 用户尝试登陆登陆成功后,后端依靠加密算法,将凭证生成 token,返回给客户端客户端保存 token,
  2. 每次发送请求时,携带 token后端再接收到带有 token 的请求时,验证 token 的有效性在整个流程中

比较重要的是:生成 token、验证 token 的过程。这里设计一种简单的技术实现:生成:token 的组成为:{user}.{HS256(user, secret)}。其中,secret 是加密需要的密钥,保存在服务端,不能泄漏。HS256 是加密算法,使用 RS256、HS512 也可以。验证:将请求中携带的 token 按照.分开,得到payload和sig。用服务器密钥对payload进行加密,将加密结果和sig比较,如果相同,那么通过验证。

token 的优点多多:
服务器变成无状态了,实现分布式 web 应用授权
可以进行跨域授权,不再局限父子域名
token 设计绝对了它本身可以携带更多不敏感数据,例如最常用的 JWT
安全性更高,密钥保存在服务器。若密钥被窃取,可以统一重新下发密钥。

参考 :https://www.zhihu.com/collection/477483594

相关文章

网友评论

      本文标题:token cookie sessioId

      本文链接:https://www.haomeiwen.com/subject/baxekktx.html