測試第三方賬號登陸

? ? ? ? 賬號登陸已經幾乎是所有手機移動APP的必備功能,賬號登陸并非簡單一個登陸的功能,其實更多的時候是在為其他功能服務,比如:多設備數據同步,必須有賬號關聯;個性化推薦,也必須基于用戶賬號的習慣;評論功能,也是需要有賬號登陸...... 以上列舉的只是一些比較簡單的用戶登陸后的相關功能,如果是社交類應用,網絡游戲類應用或者購物類應用,那賬號登陸的功能就是最基礎也最重要的功能了。

? ? ? ?現有的移動應用中賬號登陸主要有兩種:1、自家平臺提供賬號注冊登陸入口;2,使用第三方賬號登陸。從技術難道上來講,自家平臺提供注冊登陸入口相對而來難度較大,且需要考慮的安全因素太多;第三方登陸則至相對簡單,只需要調用第三方登陸平臺的SDK或者API,同時客戶端和服務端也提供了開源代碼和案例模板。從用戶角度來看,自家平臺注冊賬號登陸會很麻煩,用戶會嫌注冊賬號麻煩,也會考慮賬號安全問題,也會覺得又得多記一個賬號密碼;反而第三方賬號登陸則操作簡單多了,也不用多記住賬號密碼,安全性也多一層保障。因此現在移動APP里主流的登陸方案就是使用第三方登陸。

? ? ? ?國外應用,可能使用Google登陸,Facebook登陸,Twitter登陸的比較多;國內則是QQ登陸,微信登陸,微博登陸等等;同時,第三方登陸的流程也大致相似,主要都是三步:

第一步:請求CODE,簡單理解就是移動應用調用三方客戶端或者網頁,請求三方帳號授權

第二步:通過code獲取access_token,移動應用內集成的三方SDK將code發送給三方的授權服務器認證,通過則返回access_token

第三步:通過access_token調用接口,移動應用內集成的三方SDK將access_token發送給三方服務器獲取基本的用戶信息

通過這三步就完成了三方帳號的登陸流程了,通過流程可以看見,移動應用是完全獲取不到三方帳號的密碼等重要信息的,最后三方服務器返回給移動應用的是一些頭像,昵稱等基本信息,下圖是移動應用調用微信登陸的一個流程:

微信登陸流程


? ? ? ?既然簡單了解了三方登陸的的基本流程,那接下來就梳理下測試需要注意的地方:

1、手機上有沒有安裝第三方平臺的應用。這一步是獲取Code中的一步,據我知道的微信登錄必須有安裝微信客戶端,是沒有提供網頁端登陸的。而我之前測試過的產品使用Facebook登陸時是優先使用客戶端登陸,如果沒有安裝客戶端會使用API請求打開網頁輸入帳號密碼登陸。不管怎么樣,所有的第三方登陸場景里都需要考慮到有沒有安裝三方平臺的客戶端。

2、所開發的應用是否在第三方平臺注冊過相關信息,不管是微信還是Facebook或者其他,都需要在其開發者平臺上注冊應用的相關信息。如果沒有注冊,那么獲取access_token這一步必然會是失敗的。講真之前經常由于這個被坑。

3、access_token獲取成功之后,只要網絡正常一般登陸場景都是沒問題的。但還有點需要注意的是用戶信息和自己的服務器的交互。由于應用自己的服務器也許要存儲一些用戶相關的數據,那么自己的服務器肯定講獲取的三方賬戶的基本數據發送給自己的服務器。也需要檢查下我們自己的服務器是否整齊存儲了有用的信息。

4、登陸成功后,用戶的頭像昵稱等基本信息的正確性。之前遇到過一個Bug,用戶使用Facebook登陸后,頭像不清晰,結果問題是Facebook返回用戶數據時,頭像傳了3中分辨率不同的圖片,偏偏我們的服務器保存的是分辨率最小的圖片。同樣如果昵稱中包含特殊字符,或者名稱過長等等場景都是需要注意的

5、切換帳號的場景,這類問題之前也遇到過。之前測試使用Twitter登陸,退出登陸后再使用Twitter登陸總是默認使用之前的帳號,無法切換其他Twitter帳號。因為應用緩存了之前的Token,并且Token沒那么快過期,因此無法切換帳號了。所以后續就做了個需求,每次退出登陸時,清理一次Token。

以上是我之前測試帳號登陸一塊的功能時的一些經驗,我也是最近才開始總結,希望對大家多多少少有點用。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容