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