一、登录和退出功能
登录状态保存问题:
当前端与后端接口之间存在跨域问题,推荐使用Token,反之,推荐使用Session或Cookie
Token原理
路由导航守卫控制访问权限
如果用户没有登录,直接通过URL访问特定页面,需要重新导航到登录页面
// 为路由对象,添加beforeEach导航守卫
router.beforeEach((to, from, next) => {
// 如果用户访问的登录页,直接放行
if(to.path === '/login') return next()
// 从sessionStorage中获取到保存的token值
const tokenStr = window.sessionStorage.getItem('token')
// 没有token,强制跳转到登录页
if(!tokenStr) return next('/login')
next()
})
退出功能实现原理
基于token的方式实现退出比较简单,只需要销毁本地的token即可。这样,后续的请求就不会携带token,必须重新登录生成一个新的token之后才可以访问页面。
// 清空token
window.sessionStorage.clear()
// 跳转到登录页
this.$router.push('/login')