app介面設計之token的php實現

2021-09-24 07:00:16 字數 1500 閱讀 7092

1、首先說一句什麼是介面:介面簡單來說就是伺服器端用來返回給其他程式或者客戶端資料的橋梁

2、介面的作用:根據固定引數返回固定資料,比如客戶端傳a=1,那麼伺服器端返回a的姓名,客戶端傳a=2,伺服器端返回a的性別,而不會返回其他資料。

3、signature簽名的作用:保證介面與資料的安全

4、token的作用:和pc登陸的session一樣,作為使用者進入的唯一票據

所以為了保證移動端和服務端資料傳輸相對安全,需要對介面進行加密傳輸

1、token的設計目的: 

2、token設計時的種類: 

(1)資料庫使用者表新增token欄位和time_out這個token過期時間字段 

(2)使用者登陸時(註冊時自動登陸也需要)生成乙個token和過期時間存入表中 

(3)在其他介面呼叫前,判斷token是否正確,正確則繼續,錯誤則讓使用者重新登陸

(1)//下面是使用者登陸時把token插入資料庫的**

$time_out = strtotime("+7 days");

db::setbypk('u_adver', array('token1' => $logininfo['token'], 'time_out' => $time_out), $logininfo['id']);

(2)//下面是生成token方法**

public static function settoken()

$str = md5(uniqid(md5(microtime(true)),true));  //生成乙個不會重複的字串

$str = sha1($str);  //加密

return $str;

(3)//下面是每個介面都必須呼叫的token驗證**,驗證具體實現是在(4)

$args['token'] = $_post['token'];

if ($tokencheck != 90001)

$res['msg_code'] = $tokencheck;

v_json($res);

public static function checktokens($token, $table)

$res = db::getoneforfields($table, 'time_out', 'token1 = ?', array($token));

if (!empty($res))

if (time() - $res['time_out'] > 0) 

return 90003;  //token長時間未使用而過期,需重新登陸

$new_time_out = time() + 604800;//604800是七天

if (db::setwhere($table, array('time_out' => $new_time_out), 'token1 = ?', array($token)))

return 90001;  //token驗證成功,time_out重新整理成功,可以獲取介面資訊

return 90002;  //token錯誤驗證失敗

app介面設計之token的php實現

1 首先說一句什麼是介面 介面簡單來說就是伺服器端用來返回給其他程式或者客戶端資料的橋梁 2 介面的作用 根據固定引數返回固定資料,比如客戶端傳a 1,那麼伺服器端返回a的姓名,客戶端傳a 2,伺服器端返回a的性別,而不會返回其他資料。所以為了保證移動端和服務端資料傳輸相對安全,需要對介面進行加密傳...

app介面設計之token的php實現

1 首先說一句什麼是介面 介面簡單來說就是伺服器端用來返回給其他程式或者客戶端資料的橋梁 2 介面的作用 根據固定引數返回固定資料,比如客戶端傳a 1,那麼伺服器端返回a的姓名,客戶端傳a 2,伺服器端返回a的性別,而不會返回其他資料。3 signature簽名的作用 保證介面與資料的安全 4 to...

app介面設計之token的php實現

1 首先說一句什麼是介面 介面簡單來說就是伺服器端用來返回給其他程式或者客戶端資料的橋梁 2 介面的作用 根據固定引數返回固定資料,比如客戶端傳a 1,那麼伺服器端返回a的姓名,客戶端傳a 2,伺服器端返回a的性別,而不會返回其他資料。3 signature簽名的作用 保證介面與資料的安全 4 to...