我們經(jīng)常會(huì)使用第三方的賬號(hào)來登錄某個(gè)平臺(tái),比如使用QQ賬號(hào)登錄愛奇藝,使用微博登錄自如App。而登錄的過程中,會(huì)提示自如想訪問你的微博公開資料、好友信息,或者愛奇藝要訪問您QQ頭像、照片等資料。那么這個(gè)過程是有一個(gè)比較復(fù)雜的授權(quán)流程,在IoT云業(yè)務(wù)測(cè)試過程中,也會(huì)有這種場(chǎng)景的授權(quán)流程。下面我就通過圖例結(jié)合業(yè)務(wù)場(chǎng)景和大家介紹下oauth授權(quán)流程。
舉栗
如下圖,是在使用微信登錄自如APP時(shí),自如APP要求訪問用戶的微信公開資料。其實(shí)就是自如想獲取微信的相關(guān)接口,去訪問用戶的微信信息。那點(diǎn)擊確認(rèn)時(shí)這個(gè)過程,就是oauth的授權(quán)流程。有了這個(gè)概念,下面我通過一個(gè)流程圖來介紹下整個(gè)流程的主要幾點(diǎn)。
oauth授權(quán)流程
- 用戶使用微信登錄自如APP
- 自如APP向用戶申請(qǐng)?jiān)L問用戶的個(gè)人微信資料
- 用戶點(diǎn)擊同意(代表用戶同意自如訪問他的微信信息)
- 用戶點(diǎn)擊同意時(shí),自如會(huì)攜帶一個(gè)回調(diào)地址,去微信服務(wù)器申請(qǐng)獲取code
- 微信返回一個(gè)code給自如
- 自如攜帶code和回調(diào)地址,再次想微信請(qǐng)求獲取access_token
- 微信將access_token返回給自如
- 自如以后就會(huì)通過這個(gè)access_token,去訪問用戶的微信資料
劃重點(diǎn)
- code是有時(shí)效性的,盡量在獲取后的幾分鐘內(nèi)去申請(qǐng)獲取access_token
- access_token也是有過期時(shí)間的,而過期后就需要重新獲取新的令牌
業(yè)務(wù)場(chǎng)景
在我們的業(yè)務(wù)中,會(huì)對(duì)接一些第三方的設(shè)備,以達(dá)到訪問并控制第三方設(shè)備的能力。這個(gè)時(shí)候用戶要想通過自家云去訪問或者控制第三方云下面的設(shè)備,就需要在登錄時(shí),獲取oauth授權(quán)。這里的自家云就相當(dāng)于上面流程圖中的自如,而第三方云相當(dāng)于上面流程圖中的微信,授權(quán)流程基本一致。
結(jié)束語:自己是在業(yè)務(wù)測(cè)試中,接觸到這種場(chǎng)景,才逐漸的對(duì)這種授權(quán)流程熟悉。我們經(jīng)常會(huì)遇到這種通過第三方登錄某個(gè)網(wǎng)站或者APP,現(xiàn)在大家應(yīng)該對(duì)這個(gè)授權(quán)流程有一些了解。如果想要知道更深的細(xì)節(jié),可以去了解下oauth認(rèn)證原理。






