您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關(guān)OAuth的認知以及開發(fā)流程是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
什么是OAUTH?
OAUTH協(xié)議為用戶資源的授權(quán)提供了一個安全的、開放而又簡易的標(biāo)準(zhǔn)。與以往的授權(quán)方式不同之處是OAUTH的授權(quán)不會使第三方觸及到用戶的帳號信息(如用戶名與密碼),即第三方無需使用用戶的用戶名與密碼就可以申請獲得該用戶資源的授權(quán),因此OAUTH是安全的。oAuth是Open Authorization的簡寫。
OAUTH定義
OAUTH是一種開放的協(xié)議,為桌面、手機或web應(yīng)用提供了一種簡單的,標(biāo)準(zhǔn)的方式去訪問需要用戶授權(quán)的API服務(wù)。OAUTH類似于Flickr Auth、Google's AuthSub 、Yahoo's BBAuth、 Facebook Auth等。
相關(guān)術(shù)語
在弄清楚OAUTH流程之前,我們先了解下OAUTH的一些術(shù)語的定義:
OAUTH相關(guān)的三個URL:
Request Token URL: 獲取未授權(quán)的Request Token服務(wù)地址;
User Authorization URL: 獲取用戶授權(quán)的Request Token服務(wù)地址;
Access Token URL: 用授權(quán)的Request Token換取Access Token的服務(wù)地址;
OAUTH相關(guān)的參數(shù)定義:
oauth_consumer_key: 使用者的ID,OAUTH服務(wù)的直接使用者是開發(fā)者開發(fā)出來的應(yīng)用。所以該參數(shù)值的獲取一般是要去OAUTH服務(wù)提供商處注冊一個應(yīng)用,再獲取該應(yīng)用的oauth_consumer_key。
oauth_consumer_secret:oauth_consumer_key對應(yīng)的密鑰。
oauth_signature_method: 請求串的簽名方法,應(yīng)用每次向OAUTH三個服務(wù)地址發(fā)送請求時,必須對請求進行簽名。簽名的方法有:HMAC-SHA1、RSA-SHA1與PLAINTEXT等三種。
oauth_signature: 用上面的簽名方法對請求的簽名。
oauth_timestamp: 發(fā)起請求的時間戳,其值是距1970 00:00:00 GMT的秒數(shù),必須是大于0的整數(shù)。本次請求的時間戳必須大于或者等于上次的時間戳。
oauth_nonce: 隨機生成的字符串,用于防止請求的重放,防止外界的非法***。
oauth_version: OAUTH的版本號,可選,其值必須為1.0。
OAUTH HTTP響應(yīng)代碼:
HTTP 400 Bad Request 請求錯誤
Unsupported parameter 參數(shù)錯誤
Unsupported signature method 簽名方法錯誤
Missing required parameter 參數(shù)丟失
Duplicated OAuth Protocol Parameter 參數(shù)重復(fù)
HTTP 401 Unauthorized 未授權(quán)
Invalid Consumer Key 非法key
Invalid / expired Token 失效或者非法的token
Invalid signature 簽名非法
Invalid / used nonce 非法的nonce
OAUTH認證授權(quán)流程:
在弄清楚了OAUTH的術(shù)語后,我們可以對OAUTH認證授權(quán)的流程進行初步認識。其實,簡單的來說,OAUTH認證授權(quán)就三個步驟,三句話可以概括:
1. 獲取未授權(quán)的Request Token
2. 獲取用戶授權(quán)的Request Token
3. 用授權(quán)的Request Token換取Access Token
當(dāng)應(yīng)用拿到Access Token后,就可以有權(quán)訪問用戶授權(quán)的資源了。大家肯能看出來了,這三個步驟不就是對應(yīng)OAUTH的三個URL服務(wù)地址嘛。一點沒錯,上面的三個步驟中,每個步驟分別請求一個URL,并且收到相關(guān)信息,并且拿到上步的相關(guān)信息去請求接下來的URL直到拿到Access Token。
QQ OAuth3.0開發(fā)流程(來自QQapi)
Step1. 準(zhǔn)備工作
接入QQ登錄前,需要首先進行申請,獲得對應(yīng)的appid與appkey,以保證后續(xù)流程中可正確對應(yīng)用與用戶進行驗證與授權(quán)。同時,需要保證連接暢通。
Step2. 放置QQ登錄按鈕
在移動應(yīng)用界面上放置“QQ登錄”按鈕,并為按鈕添加前臺代碼,實現(xiàn)點擊按鈕即彈出QQ登錄對話框。
Step3. 獲取Access Token
通過用戶驗證登錄和授權(quán),獲取Access Token,為下一步獲取用戶的OpenID做準(zhǔn)備;同時,Access Token是應(yīng)用在調(diào)用OpenAPI訪問和修改用戶數(shù)據(jù)時必須傳入的參數(shù)。Access token由每次用戶登錄時生成,過期時間默認為三個月,用戶再次登錄時自動刷新,請移動應(yīng)用做好防過期策略,或過期后提示用戶再次授權(quán)。
QQ登錄OAuth3.0針對移動應(yīng)用接入,提供了登錄驗證和授權(quán)流程,主要提供以下獲取access token的方式:即OAuth官方文檔中提到的Implicit模式,適用于需要通過客戶端訪問的方式。
Step4. 通過Access Token獲取用戶的OpenID
通過輸入在上一步獲取的Access Token,得到對應(yīng)用戶身份的OpenID。OpenID是此網(wǎng)站上或應(yīng)用中唯一對應(yīng)用戶身份的標(biāo)識,網(wǎng)站或應(yīng)用可將此ID進行存儲,便于用戶下次登錄時辨識其身份,或?qū)⑵渑c用戶在網(wǎng)站上或應(yīng)用中的原有賬號進行綁定。
Step5. 調(diào)用OpenAPI,來請求訪問或修改用戶授權(quán)的資源
獲取到Access Token后OpenID后,可通過調(diào)用OpenAPI來獲取或修改用戶個人信息。調(diào)用OpenAPI時需要用到如下3個值:
YOUR_APP_ID:即申請QQ登錄成功后分配的appid(如222222)
YOUR_ACCESS_TOKEN:Step3獲取到的Access Token,必須保證未過期(E0632E6CE12AC709999)
YOUR_OPENID:Step4獲取到的OpenID,用戶唯一標(biāo)識(如B9DD537D1C5C98A9999)
看完上述內(nèi)容,你們對OAuth的認知以及開發(fā)流程是怎樣的有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。