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