问题描述
最近有一个项目需要从“随申办”登录,角色权限分三种,每种身份的人进去需要跳到不同的首页。
因为实在随申办登录过的,所以系统不需要专门的登录页让用户进行二次登录,需要直接进入系统。
思路:
后端从“随申办”拿到用户登录的token返回给前端,前端在初次进入各角色首页时拿到url上的token参数进行自动登录,登录成功后把token存在本地,把url上携带的token去掉(防止用户返回到首页的时候再次登录,此时token已失效)
代码
main.js中封装公共方法
Vue.prototype.reLogin = (token,path) => {
localStorage.setItem('rc_token', token)
axios.get('后端登录接口', {}, res => {
localStorage.setItem('token', res.token)
location.replace(path) // 将url中的token参数去掉,其实就是指向了新地址
})
}
页面中使用
let hrefParam = location.href.split('?')[1]
if(hrefParam){ // 交换token
this.reLogin(hrefParam.split('=')[1], '/home')
}
大功告成!!!这样初次进入页面就可以携带token直接登录啦,登录成功后即使返回首页也不会重新登录出现“token失效”问题了