每次在前端登录,调用前端的服务都会像后端发送一次请求,这就需要我们频繁的登录验证个人信息,这样明显是不切实际的,这时我们就需要一种标记使服务器认得我们。这里我们会使用Session与Cookie的技术了
Session:在计算机中,尤其是在网络应用中,称为“会话控制”。Session对象存储特定用户会话所需的属性及配置信息。这样,当用户在应用程序的Web页之间跳转时,存储在Session对象中的变量将不会丢失,而是在整个用户会话中一直存在下去。当用户请求来自应用程序的 Web页时,如果该用户还没有会话,则Web服务器将自动创建一个 Session对象。当会话过期或被放弃后,服务器将终止该会话。
例:在网页端登录一些网站,登陆一次只要页面不关闭就可以在页面里进行各种操作请求等
一般登陆成功后后端会返回一个凭证缓存在Session中,显然这个凭证是不可以重复的,这里我们一般后端会返回一个UUID:UUID动态生成TOKEN,根据当前时间毫秒数+随机数利用hash算法生成几乎可以保证不重复(有2^128分之一产生哈希碰撞)
String token = UUID.randomUUID().toString().replace("-", "");return token;
总结:
Cookie:有时也用其复数形式 Cookies。类型为“小型文本文件”,是某些网站为了辨别用户身份,进行Session跟踪而储存在用户本地终端上的数据(通常经过加密),由用户客户端计算机暂时或永久保存的信息
例:冲了一些视频会员,每次打开软件不需要重新登录一次,直接系统登陆
总结:
1.作用
前端页面跳转是通过路由进行控制. 规定: 如果用户没有登录,则只允许访问登录页面.只有登录之后才能访问其它页面,拦截用户的请求.
2.逻辑
在登录时会返回一个UUID值存储在Session中,检查是否存在,有表示已经登录,放行,否则重定向到登录页面
3.代码
router.beforeEach((to,from,next) =>{if(to.path === "/login") return next()let token = Item("token")//字符串类型的判断if(token) return next()next("/login")
})
参数一:to 路由跳转的网址
参数二:from 路由从哪里来
参数三:next 是一个函数,表示放行或者重定向
next()放行
next("/login")重定向到登录页面
本文发布于:2024-02-01 13:25:02,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170676510436914.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |