1. 程式人生 > >接口認證方式:Bearer Token

接口認證方式:Bearer Token

開放 正文 獲得 ner sha 目前 通過 過期 hash散列算法

因為HTTP協議是開放的,可以任人調用。所以,如果接口不希望被隨意調用,就需要做訪問權限的控制,認證是好的用戶,才允許調用API。

目前主流的訪問權限控制/認證模式有以下幾種:

1),Bearer Token(Token 令牌)

定義:為了驗證使用者的身份,需要客戶端向服務器端提供一個可靠的驗證信息,稱為Token,這個token通常由Json數據格式組成,通過hash散列算法生成一個字符串,所以稱為Json Web Token(Json表示令牌的原始值是一個Json格式的數據,web表示是在互聯網傳播的,token表示令牌,簡稱JWT)

JWT分為三部分:

第一部分:頭部

{

"typ" : "JWT", (typ:類型)

"alg" : "HS256" (alg:算法,HS256表示哈希算法的mac值。SHA256/HmacSHA256,SHA256表示直接加密,HmacSHA256表示用秘鑰進行加密。SHA(Secure[s??kj??(r)] Hash Algorithm [??lg?r?e?m],安全散列算法)

HMAC(Hash Message Authentication [?:?θent?‘ke??n] Code,散列消息鑒別碼))

}

技術分享圖片 技術分享圖片

第二部分(Claim正文部分)

{

"iss" : "joe",(issuer,發布者)

"exp": 1300819380,(expiration[?eksp??re??n] time 過期時間,毫秒數計算)

"http://example.com/is_root" :true(主題)

}

第三部分:簽名(將上面的兩個部分組合在一起+本地信息做的一個的簽名(頭部在前)

網絡解釋:簽名是把header和payload(載荷)對應的json結構進行base64url編碼之後得到的兩個串,用英文句點號拼接起來,然後根據header裏面alg指定的簽名算法生成出來的。

https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-19

1,令牌的好處:避免在使用中不斷的輸入賬號和密碼,比較安全

2,如果要測試帶token的接口,首先要進行登錄,登錄成功會有個token信息,向api接口發送請求的時候必須帶上這個token,故需要做2次請求(1,登錄,拿到token 2,正式對接口進行測試)

技術分享圖片

這個時候頭部會多一個authorization

技術分享圖片

authorization可能在頭部,也可能直接跟在請求行裏面

http://www.xxx.com/ada?token=xxxxx

要麽是用post請求,然後放在參數裏面

技術分享圖片

3,註意點

1),token一般有時間限制。測試前需要跟開發確認token可以用多久,什麽時候算token失效

2),token放在哪兒,怎麽傳回去,需要有開發文檔,或者咨詢開發,登錄成功返回的token需要了解從什麽地方獲取(可以通過錄制進行查看)



作者:好多可樂
鏈接:https://www.jianshu.com/p/8f7009456abc
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並註明出處。

接口認證方式:Bearer Token