授權(quán)登錄降低了用戶注冊賬號時的操作成本,減少了產(chǎn)品的獲客門檻。在本文中,作者結(jié)合案例,盤點了微信小程序授權(quán)登錄設(shè)計中需要注意的幾點問題,并對功能設(shè)計背后的設(shè)計思路與原理進行了簡要的分析,供大家一同參考學習。
經(jīng)歷了四個小程序從0-1的設(shè)計/研發(fā)/上線的生命周期,深感小程序由于微信生態(tài)圈的影響,使它擁有很多便捷的封裝功能,支持直接調(diào)用;同時弊端就是導致很多功能受限,不像原生app那樣靈活多變。踩過無數(shù)坑,填過無數(shù)坑,所以萌生了總結(jié)小程序從頭到尾各個環(huán)節(jié)的知識點,算存檔也算分享給讀者。適合剛?cè)腴T接觸小程序設(shè)計的同學或者是希望深入了解小程序的同學。
本文會從小程序一開始需要掌握的openID、UnionID、授權(quán)微信綁定手機號、獲取其他用戶信息,到親身經(jīng)歷的單一登錄流程改造跨平臺適配作為案例,來介紹這些基本的參數(shù)和功能點如何設(shè)計。
01 openID
這是微信生態(tài)圈中,為了識別用戶,每個小程序或者公眾號對每個用戶生成的一個唯一的ID,類似身份證號,針對該小程序或公眾號具有唯一校驗的屬性。
儲存openID,在用戶下次進入小程序中,可識別用戶身份,實現(xiàn)免登陸功能。小程序本身已經(jīng)實現(xiàn)了登錄功能,所以降低的開發(fā)成本。但獲取openID只適用于規(guī)劃中不含有app等其他平臺應用的產(chǎn)品,如果想要實現(xiàn)多應用,在最初設(shè)計時,千萬不要用openID!此處踩了大坑,后文中會詳細介紹。
02 UnionID
如果開發(fā)者擁有多個移動應用、網(wǎng)站應用、和公眾帳號(包括小程序),可通過 UnionID 來區(qū)分用戶的唯一性,因為只要是同一個微信開放平臺帳號下的移動應用、網(wǎng)站應用和公眾帳號(包括小程序),用戶的 UnionID 是唯一的。
換句話說,同一用戶,對同一個微信開放平臺下的不同應用,UnionID是相同的。注意:需要在微信開放平臺將多個應用綁定在同一主體下,才能實現(xiàn)多應用共用一個UnionID,此配置需要前置進行。
03 其他用戶信息
包括:用戶信息、地理位置、定位、通訊地址、發(fā)票抬頭、獲取發(fā)票、運動步數(shù)。
04 微信綁定手機號
獲取用戶微信默認綁定的手機號,需要用戶點擊頁面中的按鈕(button),才可以調(diào)用此功能。彈窗里支持用戶修改手機號。如果業(yè)務中需要使用手機號來注冊,就可以使用此功能獲取,如業(yè)務中不強制要求,則只需獲取用戶openID/UnionID,在必要環(huán)節(jié)獲取手機號,以提升用戶體驗。 介紹完openID/UnionID兩者的區(qū)別,總結(jié)一下如何獲取這兩種ID:
點擊頁面中的按鈕,彈出授權(quán)彈窗用戶同意授權(quán),才可獲取。注意:用戶的openID是放在【用戶授權(quán)獲取昵稱和頭像】中。引申一個知識點,還有一種方式是通過微信官方提供的登錄功能獲取openID,但在獲取UnionID時會出現(xiàn)獲取不到的情況,所以并不推薦使用此方法。如果開發(fā)者帳號下存在同主體的公眾號,并且該用戶已經(jīng)關(guān)注了該公眾號。系統(tǒng)可以直接獲取到用戶的openID/UnionID,無需用戶再次授權(quán)。如果開發(fā)者帳號下存在同主體的公眾號或移動應用,并且該用戶已經(jīng)授權(quán)登錄過該公眾號或移動應用。小程序用戶無需再次授權(quán)。用戶在小程序(暫不支持小游戲)中支付完成后,5分鐘內(nèi)可獲取用戶的openID/UnionID,無需用戶授權(quán)。此應用場景,作者所參與的項目中暫時沒有使用過,但感覺掃碼購類似的產(chǎn)品中應該會使用。舉個栗子,如果你想要獲取用戶的昵稱頭像和手機號,那么需要設(shè)計兩次點擊按鈕,并且彈出兩次授權(quán)彈窗,一次按鈕點擊獲取一種授權(quán),并且只能放在不同的按鈕中。設(shè)計參考:美團、瑞幸、貝殼租房等小程序。
05 單一登錄流程改造跨平臺適配案例
5.1 舊方案的背景及流程圖
我們的產(chǎn)品是一個分銷平臺,在最初規(guī)劃和設(shè)計時,由于用人成本的因素,并沒有預備研發(fā)app,只是單純的希望通過小程序?qū)崿F(xiàn)運營推廣。但是在運營過程中,特殊的業(yè)務模式容易違規(guī),怕被用戶舉報較多導致封號。高層決定不再依托于微信生態(tài)圈,從而傾斜資源自主研發(fā)app。所以當時小程序的整個登錄流程,需要進行升級改造,用于適配app多設(shè)備注冊登錄。
舊方案流程如下:
踩的坑有兩個地方:
第一,未與研發(fā)人員明確登錄的概念,研發(fā)人員認為獲取到用戶的openID視為登錄成功,對于我們的業(yè)務設(shè)計來說,獲取到用戶的手機號碼才是真正意義的有效用戶。
第二,由于開始并未規(guī)劃app,導致研發(fā)人員在取用戶信息時,選擇了獲取用戶的openID,當多個移動應用時,無法獲取用戶的unionID,用戶在各個應用中數(shù)據(jù)無法打通。
但是改造時,已有300多個授權(quán)手機號用戶,所以改造方案花了很長時間探討和研究,最終得出了一個相對來說完整的解決方案。
5.2 改造后的方案
在APP中,我們設(shè)計了微信授權(quán)登錄、手機號驗證碼登錄,手機號密碼登錄三種登錄模式。微信授權(quán)登錄的設(shè)計相對來說比較復雜。我只梳理了一個簡易流程,研發(fā)的思路由項目經(jīng)理負責輸出。 產(chǎn)品設(shè)計思路:
研發(fā)思路(大力感謝小黑同學的貢獻):
在設(shè)計過程中,我遇到了一個思維誤區(qū),當時考慮的問題如下:
用戶A—登錄小程序—獲取到openID—綁定了手機號1—視為老用戶老用戶A—使用微信授權(quán)登錄APP—獲取到unionID—綁定了手機號2如果用戶在app登錄,有了unionID,他綁定了其他手機號怎么辦?這個時候創(chuàng)建一個新用戶嗎?那就存在一個unionid綁定了兩個手機號的情況。
這種場景如何處理?
這個地方的盲區(qū)在于,我一定要把openID和unionID關(guān)聯(lián)起來,其實大可不必。在這種情況下,以手機號為唯一標識,視為兩個用戶即可,只有綁定了相同手機號,數(shù)據(jù)才會互通合并。創(chuàng)建的新用戶,他的openID為空,獲取到unionID即可。
即:用戶A 是openID+手機號1,用戶B是unionID+手機號2+openID為空。
06 寫在后面
小程序快速便捷的研發(fā)模式和迭代模式,可以適應大部分互聯(lián)網(wǎng)產(chǎn)品快速迭代、快速試錯的需求,但是全部依賴于微信生態(tài)圈會有諸多限制,作為小程序的產(chǎn)品經(jīng)理,大家應該熟讀小程序和公眾號的文檔,清楚什么可以做什么無法實現(xiàn),這樣在設(shè)計功能時,不會走太多彎路,也避免了與研發(fā)同學產(chǎn)生沖突,設(shè)計了他們實現(xiàn)不了的需求。