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解析到的后半段,验证成功,否则失败。缺点就是增加服务器运算压力,其他就是真香

你可能感兴趣的:(2020-10-20 cookie、session、token)