在後臺在開發、除錯介面時,常常會遇到需要登陸才能請求的介面。
比如:獲取登陸使用者的收藏列表,此時,我們就需要模擬登陸狀態進行介面除錯了。如圖:
今天,我們講解利用ApiPost的環境變數,解決這種需要先登入再請求的介面依賴情況。
ApiPost提供了2種方案:
方案I、開啟全域性cookie
apipost提供了開啟全域性cookie的功能。開啟路徑如下:
右下角Cookie管理器-開啟全域性Cookie按鈕
開啟後,我們請求登陸介面後,後續介面都會共享“已登陸”的狀態,即共享了登陸介面返回的cookie。
如下所示:
第一步:請求登陸介面
第二步:訪問其他介面,則都處於了登陸狀態
方案II、利用環境變數,先請求登陸介面,再請求後續介面
這種方案是針對關閉了全域性cookie功能的情況。
1、請求登陸介面,將響應COOKIE賦值給變數:
為了處於登陸態,需要先請求登陸介面,此舉目的是為了模擬使用者的登陸行為,獲取需要的登陸引數(這裡是Cookie)。
將登陸介面返回的PHPSESSID(這個是SessionID,PHPSESSID是針對PHP作為後端介面的SessionID變數名,其他語言的變數名可能不同)設為環境變數。
apt.variables.set("login_var", response.cookies["PHPSESSID"]);
注:更多響應結果繫結變數可以參考 “響應以及斷言”一節和“後執行指令碼” 一節。
2、呼叫變數,手動給header新增Cookie引數
接著返回收藏介面,進到header選項,引數值選擇cookie,引數值輸入: PHPSESSID={{login_var}}。
此舉是為了利用登陸介面返回的Cookie偽造請求的PHPSESSID。
如圖:
或者你也可以定義個全域性header,這樣就不用每個介面都設定一遍了:
登入實現原理
利用ApiPost傳送Cookie,使伺服器識別已登入使用者的Cookie。