归子莫的博客

「笔杆揭不起,绘不出青烟别春泥 ————归子莫」

TP5.1验证Token和Electron-vue头部携带Token

博客说明

文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢!

介绍

在做一个Electron-vue的项目的时候需要使用到登录,使用TP5.1作为后台框架,正规的流程是在Electron-vue中携带Token信息,在TP5.1中验证Token来判断是否过期

Electron-vue头部携带Token

在配置拦截器的时候配置请求头

image-20200710130323399

1
2
3
4
5
6
7
8
9
10
11
// request拦截器
service.interceptors.request.use(config => {
if (store.getters.token) {
config.headers['Authorization'] = store.getters.token// 让每个请求携带自定义token 请根据实际情况自行修改
}
return config
}, error => {
// Do something with request error
console.log(error) // for debug
Promise.reject(error)
})

注意这个Authorization必须是在后端跨域的Access-Control-Allow-Headers参数中有的,比如

1
2
3
Access-Control-Allow-Origin:*
Access-Control-Allow-Methods:GET, POST, PATCH, PUT, DELETE
Access-Control-Allow-Headers:Authorization, Content-Type, If-Match, If-Modified-Since, If-None-Match, If-Unmodified-Since, X-Requested-With

TP5.1验证Token

首先在路由的时候设置中间件

image-20200710130712029

然后我们的验证就写在这个中间件里面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public function handle($request, \Closure $next)
{
// 获取头部信息
$param = $request->header();
// 不含token
if (!array_key_exists('authorization', $param)) TApiException('非法token,禁止操作', 20003, 200);
// 当前用户token是否存在(是否登录)
$token = $param['authorization'];
$user = Cache::get($token);
// 验证失败(未登录或已过期)
if (!$user) TApiException('非法token,请重新登录', 20003, 200);
// 将token和userid这类常用参数放在request中
$request->userToken = $token;
return $next($request);
}

这样经过配置过的路由都会验证Token,以此来判断用户是否登录

感谢

万能的网络

以及勤劳的自己

评论