Authorization


header里面放Authorization,就是为了验证用户身份,现在前后端分离,有跨域问题,session经常会失效
所以使用了token来验证用户身份(目前只知道可以用于验证用户身份)
token和session拥有同一功能就是判断当前用户是不是之前登录了的用户
比如你登陆后,在同一浏览器不同页面打开同一网址,你想跳过登录环节
这时候因为跨域问题,发送给后台的session会是一个新的session
服务器没法通过session来验证你的身份,所以服务器的过滤器(或拦截器)会过滤掉你的请求,让你返回登陆界面重新登录,使用户体验变差


Authorization里面放的就是token,就相当于每次发送请求的时候,拦截器都会拦截一次你的请求,
把你请求头部的Authorization拿出来,与当前存在服务器上的token做对比
如果是同一个,则证明是同一用户,然后拦截器就为你当前的请求放行,继续执行你的请求
如果不是同一个,那么服务器会截断你的请求并发送错误码给前端,让前端验证身份重新登陆

如果是使用vue.js开发,那么前端会在登陆之后将所有要用到的数据通过sessionStorage,用一个固定的key值存起来
这样的前提是登录之后并选择记住登录状态,就是在登陆界面发送过请求
但如果要实现我们上述的功能的话,直接跳转到别的页面,此时的sessionStorage是空的,因为没有登录界面的数据给我们设置
这时候就要用到cookie了,我们把原本应该存在sessionStorage的数据存在Cookie里,然后对cookie进行加密,提高安全性
然后在直接跳转到其他页面的时候,对cookie解密后把值重新放入sessionStorage
因为sessionStorage里会存该用户的token,所以就实现了记住了用户的登录状态并跳过了session失效的问题

还有一点注意就是当token过期的时候需要同时清除cookie,不然会导致页面无限跳转直至cookie过期

posted @ 2019-03-13 22:45  maps..xy  阅读(1064)  评论(0编辑  收藏  举报