在路由里写 onEnter 或者 onChange 不起作用
我是在 router 文件中 监听路由变化
可以贴下代码参考下吗?
`//监听路由变化
hashHistory.listen(location => {
const token = kits.getCookies('token')
if (new RegExp('login').test(location.pathname)) {
if (token) {
app._store.dispatch(routerRedux.replace('/home'))
}
} else {
if (!token) {
app._store.dispatch(routerRedux.replace('/login'))
}
}
})`

你这个是设置 cookie 的某个值(假使为a)等于后台返给你的 token ,然后通过判断 cookie 中的 a 是否有值来控制用户的登录是吧? 恩,这个可以实现 谢谢啊
不是cookie的某个值等于后台返回的 token,而是登录之后就会把token存在cookie的这个值中, 判断下cookie中有没有这个值就行了。 不存在并且不在登录页 就跳到登录页。
不过我这样做也有一个问题。
这样 如果token 失效, 但是还是存在在cookie中的话不会跳登录页,要另做处理
这个可以把本地的时间戳或者由服务器返回的时间戳也存放进去,判断当前时间和时间戳的时间差来处理吧
那这样的话需要去更新cookie?
恩,每次都得判断下..
@zhouyingkai1 麻烦问下 代码中kits 引用的是什么module
@k365266378 kits里面只是封装了一些方法, 上面截图用到的就是一个获取cookie的方法
Most helpful comment
`//监听路由变化
hashHistory.listen(location => {
const token = kits.getCookies('token')
})`