关于middleWare的问题
来源:8-9 注册&登录(2)

sangming
2019-09-10
index.vue的代码如下:
中间件checklogin.js代码如下:
现在问题是这样的:
当用户在浏览器的地址栏里直接打开“我的页面”时,要在服务端就要判断是否已经登录,否则就要跳转到登录;
当登录成功以后,还要返回到原来的页面(例如:我的页面);
如何保存登录前的页面记录?
我能想到有四种方法:1、url的query方式,传给login页面;
2、vuex的方式
3、localStroage或者sessionStroage里
4、cookie
第一种:不可行,因为当启用‘第三方’的平台同步登录时,就会有问题,它们不一定提供返回我们需要url query的功能,即使有这样方式,也可能会有字符长度限制问题;比如微信就会限制120字符)
第二种:middeWare里使用不了vue-router push的复方石,也使用不了 window.localtion.href的方式跳转页面(我试了,这两种方式都会报错);我看你将middleware代码直接写vue文件就可以使用window了(我将middleware提取出来为啥不行呢)?
所以使用了redirect之后 vuex被清空了,即使我使用vuex-persistedstate之类的,会提示:window undefined的错误
第三种:window undefined;所以这种方式也不可行
第四种:好像只有这种方式。但是我redirect之后,vuex的数据都没清空了,
我想问问你,这种方式要如何处理呢?我们token的过期时间是一个1小时,所以每隔1个小时,就要授权一次
望大神给个解决方案!!!
写回答
1回答
-
快乐动起来呀
2019-09-10
我觉得不是你的问题是后端token设计的问题,过期时间这么短肯定要再次验证,而你每次都保存用户密码也不太安全,一定要设计个登陆态,让用户可以自动登录
022019-09-11
相似问题