前端調取php介面,api介面前端使用

2021-10-25 20:40:12 字數 2320 閱讀 9496

>[danger]每次訪問介面時,都必須攜帶5個公共引數,如果需要使用者資訊的介面,還需要攜帶cowcms_userid引數(建議每個連線都攜帶該引數)

| 引數名稱 | 引數描述 |

| interval | timestamp引數有效時時長 預設7200,單位為秒 |

| timestamp | 請求時間戳,該值和當前時間差不能大於 interval 值(預設7200秒,時間在後台可設定) |

| noncestr | 隨機字串 |

| signature | 請求簽名 |

| cowcms_userid | 登入使用者id 32位字串,該引數在使用者登入時,返回給前端的使用者登入憑證,前端需要儲存該憑證,在呼叫強制使用者登入的介面時必傳該引數 |

>[danger]呼叫api介面流程

1.獲取訪問api介面的必須引數。

2.將獲取的引數快取到前端。

3.訪問介面時判定必須引數是否在有效時間內

4.如果引數有效直接訪問,如果引數無效,重新獲取然引數後,執行第二步

>站內呼叫介面獲取訪問api介面的必須引數

use user\member;

class sign extends member

function getcowcmsuserid()

//$id api站點id,如果是本站預設id為1,開發者可根據自己需求填寫

$param = exefun('getapiparam',[$id=1],'api');

dump($param);

$param列印出來的引數為

array(5) {

["timestamp"] => int(1584416641)

["noncestr"] => string(6) "gtug8k"

["signature"] => string(40) "fcee23aa9c3f9055d8d63e4cba51d71a630a03a3"

["interval"] => int(7200)

>其它**訪問介面獲取必須引數

$param列印出來的引數為

array(5) {

["timestamp"] => int(1584416641)

["noncestr"] => string(6) "gtug8k"

["signature"] => string(40) "fcee23aa9c3f9055d8d63e4cba51d71a630a03a3"

["interval"] => int(7200)

2.將獲取的引數快取到前端

localstorage.setitem("timestamp","....");

localstorage.setitem("noncestr","....");

localstorage.setitem("signature","....");

localstorage.setitem("interval","....");

3.js每次訪問介面時,檢測timestamp是否失效,如果失效重新獲取引數,並快取資料,否則訪問介面

timestamp = localstorage.getitem("timestamp");

noncestr = localstorage.getitem("noncestr");

signature = localstorage.getitem("signature");

interval = localstorage.getitem("interval");

timestamp = (new date()).gettime();; //當前時間戳

//提前10秒兌換新的引數

if(time - timestamp - interval > 10)

//引數失效,並重新獲取

url = "";

$.getjson(url,param, function(json){

localstorage.setitem("timestamp","....");

localstorage.setitem("noncestr","....");

localstorage.setitem("signature","....");

localstorage.setitem("interval","....");

>cowcms_userid值的獲取 方式

當使用者登入後由後端返回

調取API介面步驟

拉取別人api介面的操作步驟 string str apiutils.getflashsale 根據別人提供的api和請求方式調取 jsonobject object jsonobject.parseobject str 將獲取到的轉為json object null object.getintva...

前端調取後端介面實現定時重新整理

場景 這個地方的時間是需要定時重新整理的 setinterval 間隔指定的毫秒數不停地執行指定的 定時器 clearinterval 用於停止 setinterval 方法執行的函式 使用方法 setinterval code,time 兩個引數都是必須的,第乙個引數為要呼叫的函式或要執行的 串。...

PHP開發API介面

在實際工作中,使用php寫api介面是經常做的,php寫好介面後,前台就可以通過鏈結獲取介面提供的資料,而返回的資料一般分為兩種情況,xml和json,在這個過程中,伺服器並不知道,請求的 是什麼,有可能是別人非法呼叫我們的介面,獲取資料,因此就要使用安全驗證。從圖中可以看得很清楚,前台想要呼叫介面...