包含四个重点
一、http 是无状态的
不能保存用户的登录状态
二、登录请求返回验证信息
两种方式:
- session+cookie 服务器接收到前端登录请求之后 ,会开辟一个session存储空间,存储用户信息。之后请求让前端携带服务器返回的cookie进行验证。
- token 服务器接收到前端登录请求之后 ,返回token ,之后前端携带token请求
通常使用token方式 :1 token 安全性 返回是字符串 ,后端可以加密。请求被劫持也不好解析。
2 token相对于session 服务器处理步骤更少 只需要验证 不用存储 减少服务器的压力
三、登录页的重定向和路由导航守卫
背景:防止用户 不通过登录请求 进入系统 ,直接在地址栏输入路径 。需要重定向到登录页
这是路由导航守卫
vue代码:router.beforeEach((to,form,next)=>{
如果用户进入login页 放行
if(to.path==="/Login") return next();
从session中获取保存的token
const tokenStr = window.sessionStorage.getItem('token');
没有token强制跳转登录页
if(!tokenStr) return next('/Login')
有token直接跳转指定页面
next()
})
在router.js里
重定向到login
四、登录退出
token方式的登录退出 只需要销毁session里面的token 然后重新跳转到登录页 即可