-
1 # 熙爸愛釣魚
-
2 # 網路圈
對於剛接觸程式設計的同學而言,API與WebAPI、Token這些概念可能分辨不清,下面我們先來了解一下。
API與WebAPI是啥?1、API指的是介面
API它就是介面,可以理解為是將某種服務封裝起來提供給他人呼叫,呼叫者不需要了解此功能是如何實現的,只要傳遞一些引數就能實現特定功能,十分方便。
API的表現形式有很多種,比如常見的有:RPC介面、基於HTTP協議的介面(WebAPI)、Web Service介面等。
2、WebAPI
WebAPI其實就是基於HTTP協議的API,像我們說的RESTful其實就是WebAPI。我們可以藉助程式語言(如:Java、.NET)來開發WebAPI。WebAPI是輕量、簡單的。
Token是什麼?Token是指令牌,它代表的安全認證機制,客戶端瀏覽器請求伺服器時會將Token以GET傳參或者Header請求頭的方式傳遞至伺服器端,伺服器端會判斷此Token的合法性,若合法則允許訪問資源,反之拒絕。
Token 一般是包含公鑰,私鑰,時間,隨機碼等元素透過MD5,SHA等加密技術由伺服器端加密而成的密文,然後返回給客戶端進行臨時儲存。鑑於WebAPI 有多種請求方式,比如GET,POST,DELETE,PUT,而Token的驗證是通用驗證,建議儲存在Header頭部,使用者將Token放在請求頭部,WebAPI獲得Token後根據服務端的Token資訊做驗證,如果驗證成功,則提供相應的資源資料,否則禁止訪問,如圖所示:
Token的特性1、Token是簡單的、無狀態的,特別適合在分散式環境下使用;
2、Token由伺服器端生成和校驗,在客戶端臨時儲存;
3、客戶端獲取伺服器端返回的Token之後,後續請求都要把Token傳遞給伺服器端進行校驗,伺服器每次都要解析Token;
4、Token是有過期時間的,若Token失效,則重定向至授權頁進行使用者身份校驗,校驗成功後重新發放Token給客戶端。
回覆列表
沒做過webapi,不過經常對接一些雲端介面。簡單說一下token的作用。
1,token並不是用來加密的。傳輸的資料和token並沒有什麼直接關係。
2,token一般用來做訪問控制。如只允許授權的呼叫,如介面只開放給有許可權的應用。或者登入回話控制等。
token的生成一般會考慮這些因素:
1,授權資訊,比如雲端介面常用的appkey之類的,
2,使用者的登入會話資訊。
3,環境資訊,如使用者ip地址等。
token的校驗一般也不是加密後解密對比,而是單向加密(如各種摘要演算法)。
例如A要給B要核對一個敏感資料,A並不把資料直接發給B,而是將計算出資料的摘要發給B,B再做一次相同的計算,比較結果就可以知道是否一致。