2020-10-20 cookie、session、token

都是因为用户身份验证,而产生的。用户登录给服务器发送用户名和密码,服务器接收到之后验证成功后,返回给客户端登录信息和cookie,存储在客户端,客户端再次请求时,在请求头会有cookie 的信息,同时发送给服务器,服务器进行验证接收到的cookie,成功返回数据,失败,则用户信息异常。因为cookie是存储在客户端的,容易获取,不安全。
为了解决不安全的问题,产生了session,session是存储在服务器中的,用户接触不到,所以相对来说安全,会话信息以{key:vlaue}的形式存储,用户登录后,返回给客户端一个session(key),保存在cookie中,再次访问接口时候,请求中会带着session(key)发送给服务器,服务器根据 session(key) 找对应的value值,如果存在则用户信息存在,验证成功,否则异常。因为是存储在服务器当中,用户很多的时候,增加服务器压力。而且如果是多台服务器提供服务,假如第一次请求落到A上并创建了session,如何保证下次落到B的请求能读到session数据,为了解决这些缺陷,产生了token。 token是根据user-hs256(user+key)加密产生的一串字符串,算法不唯一这只是个示例。用户登录成功后返回token,再次请求时发送token给服务器,服务器取到token后根据‘-’解析到user,用解析到的user重新进行hs256(user+key),如果等于token解析到的后半段,验证成功,否则失败。缺点就是增加服务器运算压力,其他就是真香

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容