<?php
namespace app\api\controller;
use think\Request;
class Api extends \think\Controller
{
public function __construct(Request $request)
{
if ($request->Controller() !== 'Api') {
$token = isset($request->post(false)['token'])?$request->post(false)['token']:'';
// 實(shí)例化Redis
$redis = new \Redis();
$redis -> connect('localhost',6379);
$redis -> auth('8G66336951a.');
if (!$redis -> get($token)) {
$data = [ 'info' => '信息為空', "status"=> 1 ];
echo json_encode($data);
exit;
}
}
}
/**
* 通過(guò)傳入賬號(hào)密碼交換token
* @param string $user 賬號(hào)
* @param string $password 密碼
* @return string token
*/
public function token(Request $request)
{
# 接收post數(shù)據(jù)
$post = $request->post(false);
# 判斷
if (!isset($post['user']) || !isset($post['password'])) {
$data = [ 'info' => '未指定賬戶密碼', "status"=> 1 ];
return json($data);
}
$user = $post['user'];
$password = $post['password'];
if ($user=='root' && $password=='123456') {
// 實(shí)例化Redis
$redis = new \Redis();
$redis -> connect('localhost',6379);
$redis -> auth('8G66336951a.');
// 使用uuid生成唯一秘鑰寫(xiě)入redis中撼玄,并設(shè)置30分鐘后過(guò)期
$hash = password_hash($this->uniqidReal(),PASSWORD_DEFAULT);
if ($redis -> set($hash,$user) && $redis -> setTimeout($hash, 60 )) {
$data = [ 'info' => $hash, "status"=> 0 ];
}else{
$data = [ 'info' => '系統(tǒng)錯(cuò)誤', "status"=> 1 ];
}
return json($data);
// echo json_encode($data);
} else {
$data = [ 'info' => '驗(yàn)證失敗', "status"=> 1 ];
return json($data);
}
}
/**
* 生成唯一的uuid值
* @param integer $lenght 生成的uuid長(zhǎng)度
* @return
*/
public function uniqidReal($lenght = 13)
{
if (function_exists("random_bytes")) {
$bytes = random_bytes(ceil($lenght / 2));
} elseif (function_exists("openssl_random_pseudo_bytes")) {
$bytes = openssl_random_pseudo_bytes(ceil($lenght / 2));
} else {
throw new Exception("no cryptographically secure random function available");
}
return substr(bin2hex($bytes), 0, $lenght);
}
}
thinkphp 開(kāi)發(fā)api token驗(yàn)證
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)兽狭,“玉大人,你說(shuō)我怎么就攤上這事鹿蜀』郏” “怎么了?”我有些...
- 文/不壞的土叔 我叫張陵茴恰,是天一觀的道長(zhǎng)颠焦。 經(jīng)常有香客問(wèn)我,道長(zhǎng)往枣,這世上最難降的妖魔是什么伐庭? 我笑而不...
- 正文 為了忘掉前任,我火速辦了婚禮分冈,結(jié)果婚禮上圾另,老公的妹妹穿的比我還像新娘。我一直安慰自己雕沉,他們只是感情好集乔,可當(dāng)我...
- 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著坡椒,像睡著了一般扰路。 火紅的嫁衣襯著肌膚如雪尤溜。 梳的紋絲不亂的頭發(fā)上,一...
- 那天汗唱,我揣著相機(jī)與錄音宫莱,去河邊找鬼。 笑死哩罪,一個(gè)胖子當(dāng)著我的面吹牛授霸,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播识椰,決...
- 文/蒼蘭香墨 我猛地睜開(kāi)眼绝葡,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了腹鹉?” 一聲冷哼從身側(cè)響起藏畅,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎功咒,沒(méi)想到半個(gè)月后愉阎,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡力奋,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年榜旦,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片景殷。...
- 正文 年R本政府宣布绩蜻,位于F島的核電站铣墨,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏办绝。R本人自食惡果不足惜伊约,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望孕蝉。 院中可真熱鬧屡律,春花似錦、人聲如沸昔驱。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至纳本,卻和暖如春窍蓝,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背繁成。 一陣腳步聲響...
- 正文 我出身青樓面睛,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親尊搬。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叁鉴,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- 本文基于之前幾個(gè)項(xiàng)目在部署在微信公眾號(hào)下的網(wǎng)頁(yè)應(yīng)用幌墓,以此寫(xiě)下微信公眾號(hào)開(kāi)發(fā)的步驟以及踩過(guò)的坑 申請(qǐng)測(cè)試公眾號(hào) 首先...
- 1.驗(yàn)證token,將公眾號(hào)url引入服務(wù)器地址 url為項(xiàng)目地址token為自定義秘鑰冀泻,任意encodingAE...
- 按照官網(wǎng)的一直token驗(yàn)證失敗 在echo $_GET["echostr"];前加上header('conten...
- 參考http://www.05935.com/dai/665750/http://blog.csdn.net/si...
- 今日分享詩(shī)一首: 你在哭常侣,你說(shuō)你焚燒了自己, 但你可曾想過(guò)弹渔,誰(shuí)不是煙霧繚繞胳施!------魯米 時(shí)常想,...