首先说说我的登陆流程:
1、当用户访问站点时,在路由拦截器里判断cookie
里面是否有username
或者token
或者sessionId
之类的标识,有:表示“已登陆”,否则跳转到登陆页面;
2、如果已登陆(cookie有用户信息),跳转到相应路由,对应页面调用api
获取数据,如果返回api
提示"未登陆",跳转到登陆页(每个api都会判断用户是否登陆);
3、正常登陆,保持用户信息到cookie
注:在cookie里面操作(设置、获取、清除等)登陆用户信息,封装到一个单独模块。
问题一:这个流程有问题么?
其实在发这个提问奇前,已经发过一个类似问题, 点这儿查看
里面的实例代码把 用户登陆信息 放到 localStorage 的同时,也保存到了 state 里面,按照我上面的流程描述,我感觉放到 state 里面完全是多余的,因为一刷新就没了,我必须写多余的逻辑代码去维护,有必要么?
问题二:这么看来,登陆信息有必要用Vuex来管理么?
问题三:这么想来,是不是感觉弱化了Vuex
的作用?
个人觉得不需要
第 2 条里面说每个 api 都会判断用户是否登录;
亲,是否可以尝试下请求需要登录后权限的 api 在头信息里面带上 token 之类的的标识呢?
我的大概思路:调用登录 api 成功后保存 token 到 cookie 里面,然后在 api 在请求头信息里面带上 token 拿数据;
这样 api 层可以完全单独出来。