TP5.1驗證Token和Electron-vue頭部攜帶Token
博客說明
文章所涉及的資料來自互聯網整理和個人總結,意在於個人學習和經驗匯總,如有什么地方侵權,請聯系本人刪除,謝謝!
介紹
在做一個Electron-vue的項目的時候需要使用到登錄,使用TP5.1作為后台框架,正規的流程是在Electron-vue中攜帶Token信息,在TP5.1中驗證Token來判斷是否過期
Electron-vue頭部攜帶Token
在配置攔截器的時候配置請求頭
// 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參數中有的,比如
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
首先在路由的時候設置中間件
然后我們的驗證就寫在這個中間件里面
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,以此來判斷用戶是否登錄
感謝
萬能的網絡
以及勤勞的自己
關注公眾號: 歸子莫,獲取更多的資料,還有更長的學習計划