SaaS用戶登錄設(shè)計(1):如何讓用戶在第一次登錄前就關(guān)注你的公眾號投放?

用戶注冊與登錄的設(shè)計是個老話題了炸客,今天來點新鮮的。

一戳稽、傳統(tǒng)招數(shù)

目前主流的用戶登錄設(shè)計主要有4種:

  • 賬號密碼登錄
  • 手機短信登錄
  • 社交賬號登錄
  • 自有 APP 掃碼登錄

賬號密碼這種方式最為古老也最長青馆蠕,當然,缺點也是挺明顯的惊奇。最大的問題當然是無法判斷賬號的真實性互躬,因為一個人可以注冊多個賬號。

后來赊时,為了讓注冊用戶更真實吨铸,大多數(shù)網(wǎng)站選擇了手機短信驗證碼的方式。這種方式就好多了祖秒,用戶也覺得方便诞吱,就是有點費錢舟奠。人品不好遇到機器人刷驗證碼,那費得更厲害房维,以至于后來發(fā)短信驗證碼前都要先來一遍圖形驗證碼(Captcha)沼瘫,為了省錢降低了不少體驗。

而社交賬號登錄一開始只是為了解決用戶體驗的問題咙俩,畢竟它比賬號密碼登錄要方便多了耿戚。長期以來,它都是一種備用方案作為前面兩種方案的補充阿趁,如果要驗證用戶身份的真實性膜蛔,還是要結(jié)合手機短信驗證碼來做手機綁定。

自有 APP 掃碼登錄不必多說脖阵,這是一個擁有強粘性用戶的選擇皂股。普通的 SaaS 在獲客階段此種方式不可取,但在進入成交使用階段后命黔,還是可以大量采用的呜呐。

二、微信公眾號方案

我今天所說的「高性價比的 SaaS 系統(tǒng)用戶注冊與登錄設(shè)計」悍募,算是半個標題黨吧蘑辑,因為這不是一個全新的方案,它是基于微信公眾號來實現(xiàn)的坠宴。方案的前提是建立在用戶沒有安裝你的產(chǎn)品 APP洋魂,甚至是剛剛了解你的產(chǎn)品,在網(wǎng)站上準備注冊試用的時候啄踊,觸發(fā)注冊行為的入口是在 Web 上(非移動端場景)忧设。它概括起來要實現(xiàn)三個要點:

  • 高用戶互動觸達率(你找得到用戶,用戶找得到你)
  • 低成本(省錢颠通,最好免費,短信費都不想出)
  • 不犧牲用戶體驗(甚至某些體驗比傳統(tǒng)方式更好)

要實現(xiàn)這幾點膀懈,內(nèi)容比較多顿锰,我打算用一個系列來記錄。這個系列每一篇文章都解決了一個場景的問題启搂,可以作為獨立方案使用硼控,最后合在一起,就是一個完整的可以馬上用的方案胳赌。

聲明一下牢撼,這些方案中,并非都是我原創(chuàng)疑苫,我也看到很多網(wǎng)站在多年前就已經(jīng)在采用其中的一些方法熏版,但是網(wǎng)上并沒有人給出具體的技術(shù)實現(xiàn)纷责,我會在文章里給出這些技術(shù)實現(xiàn)的細節(jié)。當然撼短,整體方案中仍然有很大一部分——尤其是后面的幾篇文章再膳,會介紹一些目前沒有人采用或者很少人采用了但并沒有公布在網(wǎng)上的方法。

三曲横、場景描述

今天先來解決用戶互動觸達率的問題喂柒,也是不少網(wǎng)站已經(jīng)在采用的「讓用戶關(guān)注公眾號替代微信掃碼用戶授權(quán)(OAuth 2)登錄」的方案,它的優(yōu)點是僅使用一次掃碼禾嫉,就實現(xiàn)了注冊灾杰、登錄和用戶身份綁定,并可以通過公眾號下發(fā)消息熙参,再次觸達用戶艳吠。

場景一:用戶注冊

用戶在網(wǎng)站上準備注冊時,從用戶視角來看尊惰,步驟是這樣的:

  1. 用戶點擊「注冊/登錄」按鈕讲竿;
  2. 頁面展示一個二維碼,并提示用戶「使用微信掃描二維碼」弄屡;
  3. 微信掃碼后题禀,進入「公眾號關(guān)注」頁,用戶手動點擊「關(guān)注」膀捷;
  4. 公眾號返回消息「注冊成功」迈嘹;
  5. 電腦頁面顯示「注冊成功」并成功登錄,跳轉(zhuǎn)到登錄后頁面全庸。

看起來步驟不少秀仲,但仔細看看用戶的實際操作,只有「掃碼」和「關(guān)注」兩個動作壶笼,和傳統(tǒng)的 OAuth 2 掃碼授權(quán)登錄時的動作是一樣多的神僵,只是把「確定授權(quán)」換成了「關(guān)注」。

有的網(wǎng)站仍然采用了「驗證碼」的思路(我不推薦)覆劈,在第 2 步時保礼,電腦網(wǎng)頁會出現(xiàn)一個驗證碼輸入框并提示用戶掃碼獲取驗證碼,在第 4 步時微信會發(fā)出一個「驗證碼」责语,用戶第 5 步時在電腦端填入炮障。這種方式需要用戶的操作更多,但給用戶的感覺會更溫和坤候,更像是一個用戶接收驗證碼的過程而不是一個刻意引導(dǎo)用戶關(guān)注公眾號的過程胁赢。

不要小看了這個「關(guān)注公眾號」的過程,它是比「短信」和「郵件」更能與用戶發(fā)生連接的地方白筹。只這一個優(yōu)點智末,就是傳統(tǒng)注冊方式無法比擬的了谅摄。同時,由于微信的加持吹害,也可以在這個過程中和用戶授權(quán)登錄一樣螟凭,拿到用戶的頭像、昵稱它呀、性別螺男、地區(qū)等信息,用于完善用戶的信息纵穿。

場景二:用戶登錄

用戶在注冊成功之后下隧,下一次登錄時的步驟更是減少到只需要一個「掃碼」的步驟:

  1. 用戶點擊「注冊/登錄」按鈕;
  2. 頁面展示一個二維碼谓媒,并提示用戶「使用微信掃描二維碼」淆院;
  3. 用戶微信掃碼,公眾號返回消息「登錄成功」句惯;
  4. 電腦端顯示「登錄成功」并跳轉(zhuǎn)到登錄后頁面土辩。

這個體驗,怕是比「微信授權(quán)登錄」還簡單抢野。

四拷淘、技術(shù)實現(xiàn)

接下來我要介紹這個方案的技術(shù)實現(xiàn)細節(jié)。以下是該方案的功能時序圖指孤,請完成閱讀和理解:

方案中在等待用戶微信掃碼時启涯,電腦端網(wǎng)頁和服務(wù)器之間有一個等待并保持通信的過程,這個過程既可以采取由網(wǎng)頁端發(fā)起輪詢恃轩,也可以用 WebSocket 建立長連接结洼。由于業(yè)務(wù)邏輯比較簡單,這里我推薦采用客戶端輪詢的方式叉跛。

API接口

以網(wǎng)頁端采用輪詢方式為例松忍,服務(wù)端提供的接口一共有3個,2個給前端調(diào)用筷厘,1個用作微信公眾號平臺的回調(diào)(也可以在已有回調(diào)地址上增加功能):

/login-start
#(給前端)獲取登錄二維碼#請求參數(shù):無
#響應(yīng)結(jié)果:服務(wù)端生成的「唯一請求參數(shù)」和二維碼地址

/check-login
#(給前端)獲取登錄成功狀態(tài)
#請求參數(shù):上一個接口返回的「唯一請求參數(shù)」
#響應(yīng)結(jié)果:等待掃碼 或 登錄成功 或 二維碼已超時

/wx-service-callback
#(在微信公眾號平臺注冊的回調(diào)地址) 注冊成功后返回消息
#請求參數(shù):微信公眾號平臺回調(diào)的XML數(shù)據(jù)
#響應(yīng)結(jié)果:XML格式的公眾號消息` </pre>

數(shù)據(jù)庫

服務(wù)端首先要在數(shù)據(jù)庫創(chuàng)建一個數(shù)據(jù)表挽铁,用于存放「訪問參數(shù)」以及其狀態(tài)與過期時間。為了性能考慮敞掘,可以將訪問參數(shù)放入 Redis 緩存,并設(shè)置對應(yīng)的過期時間楣铁。

服務(wù)

在服務(wù)端已經(jīng)實現(xiàn)微信公眾號接口調(diào)用的情況下(即 accessToken 已經(jīng)拿到)玖雁,服務(wù)端要實現(xiàn)的對應(yīng)的主要服務(wù)也有3個,以下是實現(xiàn)邏輯的文字描述盖腕,實際開發(fā)中應(yīng)該根據(jù)項目自身的結(jié)構(gòu)重新分拆赫冬、組織文件浓镜,編寫接口與實現(xiàn):

/* 獲取登錄二維碼
 * 參數(shù):無
 * 返回:
 *   LoginProcess.qrcodeUrl 微信公眾號接口返回的二維碼鏈接
 *   LoginProcess.requestCode 唯一請求參數(shù)
 */
LoginProcess startLoginProcess() {
  // 1. 生成「唯一請求參數(shù)」,放入數(shù)據(jù)庫和緩存劲厌,并設(shè)置過期間
  //    唯一請求參數(shù)有3個狀態(tài):未驗證膛薛、已驗證、已過期
  // 2. 用「唯一請求參數(shù)」調(diào)用微信公眾號「生成帶參數(shù)的二維碼」接口生成二維碼
  // 3. 返回二維碼鏈接 及 唯一請求參數(shù)
}

/* 獲取登錄結(jié)果
 * 參數(shù):唯一請求參數(shù)
 * 返回:
 *   登錄過程結(jié)果
 */
String checkLoginProcess(String requestCode){
  // 1. 查詢唯一請求參數(shù)狀態(tài)及是否過期
  // 2. 如果已過期补鼻,則更新唯一請求參數(shù)狀態(tài)為「已過期」哄啄,并返回 二維碼已過期
  // 3. 如果狀態(tài)為 未驗證 時,返回 等待掃碼
  // 4. 如果狀態(tài)為 已驗證 時风范,執(zhí)行登錄邏輯咨跌,并刪除唯一請求參數(shù),返回 登錄成功
}

/* 處理微信公眾號平臺回調(diào)(如果用戶未注冊將創(chuàng)建用戶)
 * 參數(shù):微信用戶 openId硼婿,唯一請求參數(shù)
 * 返回:返回給微信公眾號的消息
 */
String weixinCallback(String wxOpenId, String requestCode) {
  // 1. 如果該微信 openid 的用戶已存在锌半,表示用戶已注冊
  //   1.1 更新唯一請求參數(shù)狀態(tài)為「已驗證」
  //   1.2 向微信公眾號平臺返回消息「登錄成功」
  // 2. 如果該微信 openid 的用戶已不存在,表示尚未注冊
  //   2.1 如果用戶未注冊寇漫,則從微信請求用戶基本信息
  //   2.2 創(chuàng)建用戶
  //   2.3 更新唯一請求參數(shù)狀態(tài)為「已驗證」
  //   2.4 向微信公眾號平臺返回消息「注冊成功」
  }
}

五刊殉、總結(jié)

今天介紹的以引導(dǎo)用戶關(guān)注微信公眾號的方式完成注冊的方法,已經(jīng)是一個成熟的方案州胳,有很多網(wǎng)站也已經(jīng)在使用這種方式了记焊。我認為它最大的優(yōu)點就是加強了和用戶的連接,用戶注冊后陋葡,即可以使用微信的「客戶消息」接口向用戶推送多條消息亚亲;也可以利用服務(wù)號的優(yōu)勢后續(xù)持續(xù)的為用戶服務(wù)。

本系列的下一篇腐缤,我會講一講如何利用微信代替手機短信驗證實名手機的方案和技術(shù)實現(xiàn)捌归,如果你感興趣的話,請持續(xù)關(guān)注「SaaS 產(chǎn)品派」接下來的系列文章岭粤。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末惜索,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子剃浇,更是在濱河造成了極大的恐慌巾兆,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件虎囚,死亡現(xiàn)場離奇詭異角塑,居然都是意外死亡,警方通過查閱死者的電腦和手機淘讥,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門圃伶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事窒朋〔蟀眨” “怎么了?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵侥猩,是天一觀的道長榔至。 經(jīng)常有香客問我,道長欺劳,這世上最難降的妖魔是什么唧取? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任,我火速辦了婚禮杰标,結(jié)果婚禮上兵怯,老公的妹妹穿的比我還像新娘。我一直安慰自己腔剂,他們只是感情好媒区,可當我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著掸犬,像睡著了一般袜漩。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上湾碎,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天宙攻,我揣著相機與錄音,去河邊找鬼介褥。 笑死座掘,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的柔滔。 我是一名探鬼主播溢陪,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼睛廊!你這毒婦竟也來了形真?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤超全,失蹤者是張志新(化名)和其女友劉穎咆霜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體嘶朱,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡蛾坯,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了疏遏。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偿衰。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡挂疆,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出下翎,到底是詐尸還是另有隱情,我是刑警寧澤宝当,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布视事,位于F島的核電站,受9級特大地震影響庆揩,放射性物質(zhì)發(fā)生泄漏俐东。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一订晌、第九天 我趴在偏房一處隱蔽的房頂上張望虏辫。 院中可真熱鬧,春花似錦锈拨、人聲如沸砌庄。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娄昆。三九已至,卻和暖如春缝彬,著一層夾襖步出監(jiān)牢的瞬間萌焰,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工谷浅, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留扒俯,地道東北人。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓一疯,卻偏偏與公主長得像撼玄,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子违施,可洞房花燭夜當晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容