? ? ? ? 賬號登陸已經(jīng)幾乎是所有手機移動APP的必備功能,賬號登陸并非簡單一個登陸的功能饼酿,其實更多的時候是在為其他功能服務(wù)榕酒,比如:多設(shè)備數(shù)據(jù)同步,必須有賬號關(guān)聯(lián)故俐;個性化推薦想鹰,也必須基于用戶賬號的習(xí)慣;評論功能药版,也是需要有賬號登陸...... 以上列舉的只是一些比較簡單的用戶登陸后的相關(guān)功能辑舷,如果是社交類應(yīng)用,網(wǎng)絡(luò)游戲類應(yīng)用或者購物類應(yīng)用槽片,那賬號登陸的功能就是最基礎(chǔ)也最重要的功能了何缓。
? ? ? ?現(xiàn)有的移動應(yīng)用中賬號登陸主要有兩種:1、自家平臺提供賬號注冊登陸入口筐乳;2歌殃,使用第三方賬號登陸。從技術(shù)難道上來講蝙云,自家平臺提供注冊登陸入口相對而來難度較大氓皱,且需要考慮的安全因素太多;第三方登陸則至相對簡單勃刨,只需要調(diào)用第三方登陸平臺的SDK或者API,同時客戶端和服務(wù)端也提供了開源代碼和案例模板廷区。從用戶角度來看埠帕,自家平臺注冊賬號登陸會很麻煩,用戶會嫌注冊賬號麻煩,也會考慮賬號安全問題狡蝶,也會覺得又得多記一個賬號密碼;反而第三方賬號登陸則操作簡單多了馍乙,也不用多記住賬號密碼撑瞧,安全性也多一層保障订咸。因此現(xiàn)在移動APP里主流的登陸方案就是使用第三方登陸。
? ? ? ?國外應(yīng)用父叙,可能使用Google登陸,F(xiàn)acebook登陸甜癞,Twitter登陸的比較多;國內(nèi)則是QQ登陸吁朦,微信登陸,微博登陸等等;同時熬甚,第三方登陸的流程也大致相似智厌,主要都是三步:
第一步:請求CODE,簡單理解就是移動應(yīng)用調(diào)用三方客戶端或者網(wǎng)頁,請求三方帳號授權(quán)
第二步:通過code獲取access_token,移動應(yīng)用內(nèi)集成的三方SDK將code發(fā)送給三方的授權(quán)服務(wù)器認(rèn)證哮奇,通過則返回access_token
第三步:通過access_token調(diào)用接口,移動應(yīng)用內(nèi)集成的三方SDK將access_token發(fā)送給三方服務(wù)器獲取基本的用戶信息
通過這三步就完成了三方帳號的登陸流程了恭朗,通過流程可以看見屏镊,移動應(yīng)用是完全獲取不到三方帳號的密碼等重要信息的,最后三方服務(wù)器返回給移動應(yīng)用的是一些頭像痰腮,昵稱等基本信息而芥,下圖是移動應(yīng)用調(diào)用微信登陸的一個流程:
? ? ? ?既然簡單了解了三方登陸的的基本流程,那接下來就梳理下測試需要注意的地方:
1膀值、手機上有沒有安裝第三方平臺的應(yīng)用棍丐。這一步是獲取Code中的一步误辑,據(jù)我知道的微信登錄必須有安裝微信客戶端,是沒有提供網(wǎng)頁端登陸的歌逢。而我之前測試過的產(chǎn)品使用Facebook登陸時是優(yōu)先使用客戶端登陸巾钉,如果沒有安裝客戶端會使用API請求打開網(wǎng)頁輸入帳號密碼登陸。不管怎么樣秘案,所有的第三方登陸場景里都需要考慮到有沒有安裝三方平臺的客戶端砰苍。
2、所開發(fā)的應(yīng)用是否在第三方平臺注冊過相關(guān)信息阱高,不管是微信還是Facebook或者其他赚导,都需要在其開發(fā)者平臺上注冊應(yīng)用的相關(guān)信息。如果沒有注冊赤惊,那么獲取access_token這一步必然會是失敗的吼旧。講真之前經(jīng)常由于這個被坑。
3未舟、access_token獲取成功之后圈暗,只要網(wǎng)絡(luò)正常一般登陸場景都是沒問題的。但還有點需要注意的是用戶信息和自己的服務(wù)器的交互裕膀。由于應(yīng)用自己的服務(wù)器也許要存儲一些用戶相關(guān)的數(shù)據(jù)员串,那么自己的服務(wù)器肯定講獲取的三方賬戶的基本數(shù)據(jù)發(fā)送給自己的服務(wù)器。也需要檢查下我們自己的服務(wù)器是否整齊存儲了有用的信息魂角。
4智绸、登陸成功后野揪,用戶的頭像昵稱等基本信息的正確性瞧栗。之前遇到過一個Bug,用戶使用Facebook登陸后迹恐,頭像不清晰,結(jié)果問題是Facebook返回用戶數(shù)據(jù)時殴边,頭像傳了3中分辨率不同的圖片,偏偏我們的服務(wù)器保存的是分辨率最小的圖片竖幔。同樣如果昵稱中包含特殊字符,或者名稱過長等等場景都是需要注意的
5拳氢、切換帳號的場景,這類問題之前也遇到過馋评。之前測試使用Twitter登陸,退出登陸后再使用Twitter登陸總是默認(rèn)使用之前的帳號留特,無法切換其他Twitter帳號。因為應(yīng)用緩存了之前的Token乳乌,并且Token沒那么快過期,因此無法切換帳號了汉操。所以后續(xù)就做了個需求蒙兰,每次退出登陸時磷瘤,清理一次Token搜变。
以上是我之前測試帳號登陸一塊的功能時的一些經(jīng)驗,我也是最近才開始總結(jié)挠他,希望對大家多多少少有點用。