中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

解決前后端分離、跨域等問題的一個實例

2021-01-27    分類: 網站建設

一、準備

兩臺服務器:

一臺前端html服務器 http://admin.tp_mall.com

一臺后端獲取數據及redis數據庫服務器 http://api.tp_mall.com

后端php框架:thinkphp5.1

jsonp

二、流程及原理

用戶登錄頁 http://admin.tp_mall.com/login/login.html

ajax表單提交登錄

登錄成功將id、uname、usalt、loginTime通過aes對稱加密生成token

將token寫入redis數據庫(設置過期時間)

ajax返回token及用戶名和頭像(便于顯示)、并且寫入cookie

跳轉首頁并發送攜帶token的ajax請求數據

新建一個tp框架中間件AdminLoginCheck.php 攔截http請求來判斷是否登錄

token有效且未過期表示已登錄,通過中間件到達控制器返回數據給頁面

刷新redis中的loginTime維持登錄狀態

token無效或已過期標識未登錄,返回狀態并重定向到登錄頁

三、主要代碼

AdminLoginCheck中間件主要代碼

public function handle($request, Closure $next)

{

$jsonp = $request->param('callback');

$token = $request->param('token');

$aes = new Aes('zyddj123');

$tokenValue = $aes->decrypt($token);

$tokenArr = explode(' ', $tokenValue);

$key = 'adminToken_'.$tokenArr[0];

$redis = new Redis();

$redisToken = $redis->get($key);

$redisTokenValue = $aes->decrypt($redisToken);

$redisTokenArr = explode(' ', $redisTokenValue);

if ($redisTokenArr[0] == $tokenArr[0] && $redisTokenArr[1] == $tokenArr[1] && $redisTokenArr[2] == $tokenArr[2] && intval($redisTokenArr[count($redisTokenArr) - 1]) + 7200 > time()) {

//已經登錄 刷新redis中token過期時間

$redisTokenArr[count($redisTokenArr) - 1] = time();

$newToken = $aes->encrypt(implode(' ', $redisTokenArr));

if (!$redis->set($key, $newToken, 7200)) {

$ret = [

'sta' => -2,

'mes' => '寫入redis中token過期時間失敗!',

];

echo $jsonp.'('.json_encode($ret).')';

die;

}

} else {

//未登錄 終止程序

$ret = [

'sta' => -1,

'mes' => '請重新登錄!',

];

echo $jsonp.'('.json_encode($ret).')';

die;

}

return $next($request);

}

設置redis過期時間

/**

* 設置用戶token的redis過期時間

*

* @param [type] $info 用戶身份信息

* @return $token or false

*/

public static function setRedisExpire($info)

{

$aes = new Aes('zyddj123');

$redis = new Redis();

$tokenValue = [

'id'=>$info['id'],

'uname'=>$info['uname'],

'usalt'=>$info['usalt'],

'loginTime'=>time()

];

$token = $aes->encrypt(implode(" ",$tokenValue));

$key = 'adminToken_'.$info['id'];

return $redis->set($key,$token,7200)?$token:false;

}

四、詳細

詳細請移步至我的github

(前端)https://github.com/zyddj123/mall_html

(后端)https://github.com/zyddj123/tp_mall

新聞名稱:解決前后端分離、跨域等問題的一個實例
分享路徑:http://m.2m8n56k.cn/news4/97754.html

成都網站建設公司_創新互聯,為您提供網頁設計公司網站收錄域名注冊云服務器虛擬主機商城網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:[email protected]。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

外貿網站建設
主站蜘蛛池模板: 一级毛片免费视频观看 | 欧美在线乱妇一级毛片 | 国产大臿蕉香蕉大视频女 | 美女一级毛片免费不卡视频 | 看欧美毛片一级毛片 | 亚洲天堂视频网站 | 精品国产香港三级 | 在线视频免费国产成人 | 久久久亚洲国产精品主播 | 国产精品三级a三级三级午夜 | 中文字幕在线观看国产 | 国产日韩欧美一区二区 | 午夜宅男宅女看在线观看 | 亚洲欧美一区二区三区孕妇 | 国产亚洲图片 | 一级做a爱片特黄在线观看 一级做a爱片特黄在线观看免费看 | 日韩在线一区二区三区免费视频 | 正在播真实出轨炮对白 | 久久久久久久99久久久毒国产 | 日本一区二区高清免费不卡 | 91精品国产美女福到在线不卡 | 亚洲美女视频一区二区三区 | 国产首页精品 | 综合在线视频 | 中文字幕亚洲一区 | 欧美最黄视频 | 欧美日比视频 | 99精品视频在线这里只有 | 香蕉久久高清国产精品免费 | 99久久精品久久久久久清纯 | 免费一区二区三区久久 | 国产精品美女一级在线观看 | 国产成人免费永久播放视频平台 | 国产美女做爰免费视频软件 | 一级片在线观看 | 91色综合久久 | 国产女人在线视频 | 成人在线视频免费观看 | 国产一区二区影视 | 免费成年网站 | 日本一级毛片中文字幕 |