vue + axios实现集中式管理
token验证是我们开发中最常用到登陆会话机制, 他的诸多优缺点我这里九不做过多的叙述了,我主要说的就是他的实现方式了.由于项目是基于vuex开发的, 所以用备受好评的vuex作为我们的状态管理那是毫无悬念.
开使准备
我们知道token一般都是由我们在用户登陆之后后端返回的, 我目前手上这个项目是登陆后会放回token与 user_key, 一般token只有几小时到几天的有效期,有效期过去我们可以凭借 user_key到指定的接口刷新获取到新的token, 而user_key过期之后也就意味着本次登陆已经完全过期了, 必须让用户重新登陆.
大致思路
理清楚了思路, 代码实现起来九简单了不少:
大致的处理应该也就这样了, 本人比较懒, 本地懒得做啥export_time判断了,全交给server做这种判断的活.自我觉得这样会比较安全点.
代码实现
/store.js vue的状态管理文件, 主要集中管理token等用户信息
1 | import Vue from 'vue' |
/libs/request.js 这个文件主要负责封装好全局请求, 以及错误拦截处理
1 | import axios from 'axios' |
@/libs/uilt.js 对缓存cookie的操作
1 | // 导入js-cookie |
最后
大概就这样了, 收到数据拦截判断状态码, 刷新token重新发送本次请求,在重新返回数据, 主要是为了兼容以前的代码, 本来就是接手的项目, 只能这样弄了, 下一次就要去做微信小程序的封装.