登录认证token、Cookie/Session

136 阅读2分钟

token的认证方式

token是多用户下处理认证的最佳方式。

1.客户端首次登录,会将密码发给服务端,服务端验证是否正确,然后生成一个token,对token进行签名,加密之后再返回给客户端,客户端拿到之后将token保存在localStorage/sessionStorage

2.之后客户端再次登录,会携带token放在请求头,发送请求服务器拿到token判断是否过期,成功就返回数据,失败就对应的状态码(401登录失败)

token的特性:

  • 无状态(不将用户信息存在服务器)
  • 安全性 (能防止CSRF跨站请求伪造。有时效性)
  • 可扩展 (跨程序调用)

Cookie/Session的认证方式(/ 存储机制)

cookie是服务器给客户端们颁发的一个通行证,保存在客户端浏览器,浏览器再次请求要携带cookie,服务器要检查cookie,来辨认用户的状态。 cookie功能需要浏览器的支持,cookie不可跨域名性,访问Google只会携带google的cookie。

session保存在服务器,记录着客户状态。浏览器再次访问时只需要从session中查找客户的状态。 如果访问增多,过多的session会增加服务器的压力,影响服务器的性能。

cookie和session区别的联系

  1. cookie存放在客户端,session存放在服务端
  2. cookie存放在客户端不是很安全,容易被盗取并进行cookie欺骗,考虑安全的话应该使用session
  3. session会在一定时间内存放在服务端,如果访问增加,过多的session会增加服务器的压力,影响服务器性能。考虑性能方面应该使用cookie。
  4. 单个cookie在客户端的限制是3k。
  • cookie和session虽然存储的地方不同,但session的实现需要依赖cookie,服务器执行session机制的时候会生成session的id,这个id会发送给客户端保存在cookie,客户端每次请求都会把id放在http请求头发送给服务器。