今天就跟大家聊聊有關(guān)OAuth的認(rèn)知以及開發(fā)流程是怎樣的,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)公司成立與2013年,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元肅北做網(wǎng)站,已為上家服務(wù),為肅北各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220什么是OAUTH?
OAUTH協(xié)議為用戶資源的授權(quán)提供了一個(gè)安全的、開放而又簡(jiǎn)易的標(biāo)準(zhǔn)。與以往的授權(quán)方式不同之處是OAUTH的授權(quán)不會(huì)使第三方觸及到用戶的帳號(hào)信息(如用戶名與密碼),即第三方無(wú)需使用用戶的用戶名與密碼就可以申請(qǐng)獲得該用戶資源的授權(quán),因此OAUTH是安全的。oAuth是Open Authorization的簡(jiǎn)寫。
OAUTH定義
OAUTH是一種開放的協(xié)議,為桌面、手機(jī)或web應(yīng)用提供了一種簡(jiǎn)單的,標(biāo)準(zhǔn)的方式去訪問(wèn)需要用戶授權(quán)的API服務(wù)。OAUTH類似于Flickr Auth、Google's AuthSub 、Yahoo's BBAuth、 Facebook Auth等。
相關(guān)術(shù)語(yǔ)
在弄清楚OAUTH流程之前,我們先了解下OAUTH的一些術(shù)語(yǔ)的定義:
OAUTH相關(guān)的三個(gè)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ā)出來(lái)的應(yīng)用。所以該參數(shù)值的獲取一般是要去OAUTH服務(wù)提供商處注冊(cè)一個(gè)應(yīng)用,再獲取該應(yīng)用的oauth_consumer_key。
oauth_consumer_secret:oauth_consumer_key對(duì)應(yīng)的密鑰。
oauth_signature_method: 請(qǐng)求串的簽名方法,應(yīng)用每次向OAUTH三個(gè)服務(wù)地址發(fā)送請(qǐng)求時(shí),必須對(duì)請(qǐng)求進(jìn)行簽名。簽名的方法有:HMAC-SHA1、RSA-SHA1與PLAINTEXT等三種。
oauth_signature: 用上面的簽名方法對(duì)請(qǐng)求的簽名。
oauth_timestamp: 發(fā)起請(qǐng)求的時(shí)間戳,其值是距1970 00:00:00 GMT的秒數(shù),必須是大于0的整數(shù)。本次請(qǐng)求的時(shí)間戳必須大于或者等于上次的時(shí)間戳。
oauth_nonce: 隨機(jī)生成的字符串,用于防止請(qǐng)求的重放,防止外界的非法***。
oauth_version: OAUTH的版本號(hào),可選,其值必須為1.0。
OAUTH HTTP響應(yīng)代碼:
HTTP 400 Bad Request 請(qǐng)求錯(cuò)誤
Unsupported parameter 參數(shù)錯(cuò)誤
Unsupported signature method 簽名方法錯(cuò)誤
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認(rèn)證授權(quán)流程:
在弄清楚了OAUTH的術(shù)語(yǔ)后,我們可以對(duì)OAUTH認(rèn)證授權(quán)的流程進(jìn)行初步認(rèn)識(shí)。其實(shí),簡(jiǎn)單的來(lái)說(shuō),OAUTH認(rèn)證授權(quán)就三個(gè)步驟,三句話可以概括:
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)訪問(wèn)用戶授權(quán)的資源了。大家肯能看出來(lái)了,這三個(gè)步驟不就是對(duì)應(yīng)OAUTH的三個(gè)URL服務(wù)地址嘛。一點(diǎn)沒錯(cuò),上面的三個(gè)步驟中,每個(gè)步驟分別請(qǐng)求一個(gè)URL,并且收到相關(guān)信息,并且拿到上步的相關(guān)信息去請(qǐng)求接下來(lái)的URL直到拿到Access Token。
QQ OAuth3.0開發(fā)流程(來(lái)自QQapi)
Step1. 準(zhǔn)備工作
接入QQ登錄前,需要首先進(jìn)行申請(qǐng),獲得對(duì)應(yīng)的appid與appkey,以保證后續(xù)流程中可正確對(duì)應(yīng)用與用戶進(jìn)行驗(yàn)證與授權(quán)。同時(shí),需要保證連接暢通。
Step2. 放置QQ登錄按鈕
在移動(dòng)應(yīng)用界面上放置“QQ登錄”按鈕,并為按鈕添加前臺(tái)代碼,實(shí)現(xiàn)點(diǎn)擊按鈕即彈出QQ登錄對(duì)話框。
Step3. 獲取Access Token
通過(guò)用戶驗(yàn)證登錄和授權(quán),獲取Access Token,為下一步獲取用戶的OpenID做準(zhǔn)備;同時(shí),Access Token是應(yīng)用在調(diào)用OpenAPI訪問(wèn)和修改用戶數(shù)據(jù)時(shí)必須傳入的參數(shù)。Access token由每次用戶登錄時(shí)生成,過(guò)期時(shí)間默認(rèn)為三個(gè)月,用戶再次登錄時(shí)自動(dòng)刷新,請(qǐng)移動(dòng)應(yīng)用做好防過(guò)期策略,或過(guò)期后提示用戶再次授權(quán)。
QQ登錄OAuth3.0針對(duì)移動(dòng)應(yīng)用接入,提供了登錄驗(yàn)證和授權(quán)流程,主要提供以下獲取access token的方式:即OAuth官方文檔中提到的Implicit模式,適用于需要通過(guò)客戶端訪問(wèn)的方式。
Step4. 通過(guò)Access Token獲取用戶的OpenID
通過(guò)輸入在上一步獲取的Access Token,得到對(duì)應(yīng)用戶身份的OpenID。OpenID是此網(wǎng)站上或應(yīng)用中唯一對(duì)應(yīng)用戶身份的標(biāo)識(shí),網(wǎng)站或應(yīng)用可將此ID進(jìn)行存儲(chǔ),便于用戶下次登錄時(shí)辨識(shí)其身份,或?qū)⑵渑c用戶在網(wǎng)站上或應(yīng)用中的原有賬號(hào)進(jìn)行綁定。
Step5. 調(diào)用OpenAPI,來(lái)請(qǐng)求訪問(wèn)或修改用戶授權(quán)的資源
獲取到Access Token后OpenID后,可通過(guò)調(diào)用OpenAPI來(lái)獲取或修改用戶個(gè)人信息。調(diào)用OpenAPI時(shí)需要用到如下3個(gè)值:
YOUR_APP_ID:即申請(qǐng)QQ登錄成功后分配的appid(如222222)
YOUR_ACCESS_TOKEN:Step3獲取到的Access Token,必須保證未過(guò)期(E0632E6CE12AC709999)
YOUR_OPENID:Step4獲取到的OpenID,用戶唯一標(biāo)識(shí)(如B9DD537D1C5C98A9999)
看完上述內(nèi)容,你們對(duì)OAuth的認(rèn)知以及開發(fā)流程是怎樣的有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。