欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

解決前后端分離、跨域等問題的一個(gè)實(shí)例

2021-01-27    分類: 網(wǎng)站建設(shè)

一、準(zhǔn)備

兩臺(tái)服務(wù)器:

一臺(tái)前端html服務(wù)器 http://admin.tp_mall.com

一臺(tái)后端獲取數(shù)據(jù)及redis數(shù)據(jù)庫服務(wù)器 http://api.tp_mall.com

后端php框架:thinkphp5.1

jsonp

二、流程及原理

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

ajax表單提交登錄

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

將token寫入redis數(shù)據(jù)庫(設(shè)置過期時(shí)間)

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

跳轉(zhuǎn)首頁并發(fā)送攜帶token的ajax請(qǐng)求數(shù)據(jù)

新建一個(gè)tp框架中間件AdminLoginCheck.php 攔截http請(qǐng)求來判斷是否登錄

token有效且未過期表示已登錄,通過中間件到達(dá)控制器返回?cái)?shù)據(jù)給頁面

刷新redis中的loginTime維持登錄狀態(tài)

token無效或已過期標(biāo)識(shí)未登錄,返回狀態(tài)并重定向到登錄頁

三、主要代碼

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()) {

//已經(jīng)登錄 刷新redis中token過期時(shí)間

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

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

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

$ret = [

'sta' => -2,

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

];

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

die;

}

} else {

//未登錄 終止程序

$ret = [

'sta' => -1,

'mes' => '請(qǐng)重新登錄!',

];

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

die;

}

return $next($request);

}

設(shè)置redis過期時(shí)間

/**

* 設(shè)置用戶token的redis過期時(shí)間

*

* @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;

}

四、詳細(xì)

詳細(xì)請(qǐng)移步至我的github

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

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

新聞名稱:解決前后端分離、跨域等問題的一個(gè)實(shí)例
分享路徑:http://www.aaarwkj.com/news4/97754.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站收錄、域名注冊(cè)、云服務(wù)器、虛擬主機(jī)、商城網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
台湾三级一区二区三区| 中文字幕韩国三级电影| 婷婷丁香六月激情综合| 99热这里有精品久久| 亚洲精品成av人在线观看| 久久好大好爽要死了欧美| 可以看的黄色亚洲网站| 后入动漫视频在线观看| 在线观看91精品国产秒播| 日韩精品在线播放观看| 亚洲美女毛茸茸的逼逼| 精品福利视频蜜臀91| 日韩在线视频 一区二区三区| 国产精品色呦呦一区二区| 日本日本熟妇在线视频| 亚洲国产成在人网站天堂| 涩五月婷婷开心中文字幕| 国产成人综合精品久久| 日韩精品国产专区一区| 色综合婷婷九月中文字幕| 日韩高清午夜片在线观看| 精品一区二区在线不卡| 91女厕偷拍女厕偷拍| 日本国产精品免费在线观看| 亚洲欧美韩国日本成人综合| 亚洲七七久久精品中文国产| 亚洲综合av婷婷激情| 国产精品三级电影网| 日本黄色高清视频一区| 日韩一区二区偷拍视频| 日本在线一区二区中文| 欧美一区二区久久综合| 女性裸体无遮挡啪啪网站| 亚洲精品91在线中文字幕| 91国产网址在线观看| 91午夜福利国产精品| 国产亚洲精品久久久久久| 精品传媒国产在线观看| 国产一区二区欧美日本| 免费亚洲一级黄色录像| 日本一区二区三区三州免费观看|