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