身份认证——手机验证码的登录、邮箱密码登录、二维码登录等——cookie和session的原理

5 篇文章 0 订阅
5 篇文章 0 订阅

身份认证(身份验收、鉴权)是指通过一定的手段()、完成对用户的身份的确认


  • 服务端渲染推荐使用Session认证机制
  • 前后端分离推荐使用JWT认证机制

 Session认证机制

HTTP协议的无状态性,指的是客户端的每次HTTP请求都是独立的,连续多个请求之间没有直接关系,服务器不会主动保留HTTP请求的状态 (类似超市收银员不会记住客户的账号)

突破HTTP的无状态性(cookie类似客户向超市收银员提供会员卡(身份标识)):当客户端登录成功后,服务器可以主动给客户端发身份标识——客户端在第二次或第三次请求的时候可以携带身份标识,只要服务器收到这个身份标识,服务器就知道要登录了——专业术语叫Cookie


 Cookie:存储在用户浏览器中的一段不超过4KB的字符串,由一个名称(Name)一个值(Value)和其他几个用于控制Cookie有效性、安全性、使用范围的可选属性组

  •  不同域名下面的Cookie是各自独立的,每当客户端发起请求的时候,会自动将当前域名下所有未过期的Cookie一同发送到服务器,也就是百度的域名不可以访问其他域名的cookie,cookie是有个有效期(expires)
  • cookie自动发送——全部=未过期
  • 域名独立(自己的域名用自己的cookie访问)
  • 过期时限
  • 4KB限制(键值对的形式)

        Cookie在身份认证中起的作用:  当客户端第一次请求服务器的时候,服务器通过响应头的形式,向客户发送一个身份认证的cookie,客户端就会自动将cookie保存在浏览器中

        当客户端浏览器再次请求服务器的时候,浏览器会自动将身份认证相关的cookie,通过请求头的形式发送给服务器,服务器就可以验明客户端的身份

是一样的, 说明保存在浏览器的Cookie通过请求头的形式,(自动)发送到服务器,进行客户端的身份验证


        Cookie:不具有安全性(由于Cookie是存储在浏览器中的,而浏览器也提供了读写Cookie的API,因此Cookie很容易被伪造,不具有安全性,因此不建议服务器将重要的隐私数据,通过Cookie的形式发送给浏览器)——我们在浏览器使用伪造的Cookie去访问服务器也有可能认证成功,所以Cookie不具有任何安全性,不要使用Cookie存储重要的隐私信息:比如用户的身份信息、密码等


提高身份认证的安全性:(会员卡:Cookie+刷卡认证:服务器端认证客户端的Cookie——是Session认证机制的精髓) 


Session工作原理(隐私数据保存在服务器内存中,cookie没有隐私数据,身份认证获取隐私信息)

        首先客户端浏览器登录(提交账号和密码)——> 服务器验证账号和密码(将登录成功的信息存在服务器的内存中,同时生成对应的cookie字符串)——>服务器响应头的形式将生成的cookie响应给客户端——>浏览器自动将cookie存储在当前域名下面

        客户端浏览器第二次发送请求的时候,通过请求头自动把当前域名下所有可用的cookie发送给服务器——>服务器根据请求头中携带的cookie信息,从内存中查找对应的用户信息(用户的身份认证成功后,服务器针对当前用户生成特定的响应内容)——>服务器响应:把当前的用户对应的页面内容响应给浏览器

        

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值