第一個問題,看到“用戶注冊”大腦一片空白怎么辦?打開你的手機,退出你的qq、微信,點擊“注冊” 😃
當然,現在微信注冊諸多限制,比較繁瑣,並不是一個典型的注冊流程,在這里我主要想講比較常規的注冊方式。
我把注冊方式分為用戶名注冊
、手機號注冊
、郵箱注冊
、第三方注冊
、其他注冊方式
。它們並不是互斥關系,一個平台一般會提供這其中的一種或多種方式,並且在流程上會略有不同。
目錄
用戶名注冊
手機號注冊
郵箱注冊
第三方注冊
其他注冊方式
延展
用戶名注冊
可以說是最簡單的一種注冊方式,用戶在表單上填寫1.自定義的用戶名,2.輸入兩次密碼,3.輸入驗證碼,提交,即可注冊。
現在國內很少有網站通過這種方式注冊了,一般只有小網站會通過這種方式來降低用戶的注冊成本和提高用戶信任度。
通過用戶名注冊,只需要確保自定義的用戶名唯一即可。
手機號注冊
比較常見的注冊方式,流程如下:
1.輸入手機號、驗證碼
2.點擊獲取手機驗證碼
3.手機收到驗證碼,填寫短信驗證碼
4.提交,注冊成功
手機號注冊的變式有,手機驗證碼可能是短信,也可能是接聽電話。
另外,如果是跨國服務性質的網站,手機號的處理會分不同的國際區號,比如中國就是+86。而針對不同的國家和地區,會有不同的短信服務商。
郵箱注冊
比較常見的注冊方式,流程如下:
1.輸入郵箱、密碼、驗證碼,提交注冊
2.前往郵箱,打開郵件,點擊鏈接,激活用戶
郵箱注冊流程有區別的點是,一些網站是直接點擊郵件里面的鏈接,跳轉過去就自動激活成功,實際上是url上帶有用戶相關參數,調用了用戶激活的接口,接口返回成功后跳轉激活成功頁面。
一些網站則是發送郵箱驗證碼,用戶需要在提交注冊后跳轉的激活頁面上輸入這個郵箱驗證碼。而如果用戶不小心關閉了激活頁面,則再次登錄網站后會被通過一些方式提示,再次前往激活頁面,完成激活操作。
第三方注冊
也是現在很流行的一種注冊方式,因為它十分簡單。
回憶一下我們用電腦/手機打開騰訊視頻的時候,我們只需要點選當前登錄的qq即可立即登錄,什么都不需要填,是不是很方便?
就算我們打開的不是鵝系的產品,他們有些也會提供“qq登錄”,“微信登錄”這樣的功能,這是怎么做到的呢?
像qq,微信,facebook,Twitter,insgrame這樣的大型社交平台,都會提供開發接口
給其他企業的開發者使用,比如:QQ API列表。
第三方注冊的流程是:
1.網站請求用戶授權qq/微信登錄
2.用戶允許網站訪問他的qq/微信個人信息
這里會彈出一個qq/微信的授權頁面,詳細說明用戶將允許網站獲得什么內容,一般注冊流程會獲取用戶id、用戶名、用戶頭像這樣的基礎信息。
但是部分惡意網站可能會盜取用戶的私密信息,進而進行販賣,所以一定要看清授權頁面的授權項。
3.網站獲得qq/微信中該用戶的信息,將這些信息錄入網站的數據庫,完成注冊流程
關於這部分內容,文章OAuth 2.0 的一個簡單解釋 解釋的很清楚。
當然部分網站在完成第三方登錄后,依然會要求填寫手機號、郵箱,或者重新設置用戶名等。
其他注冊方式
多用於一些需要特殊驗證的注冊,比如:
1.O2O的網站,需要注冊用戶提供公司的相關資料
2.兼職類的網站,需要用戶詳細描述自己的技能點,上傳相關作品
在“成為有效用戶”需要填寫的內容較多的情況下,一般注冊流程會較為復雜。
一般產品有兩個選擇:
(1)把正常的注冊流程和這些內容的提交分成兩個流程,注冊流程、資格認證流程
這樣做的目的是,用戶可以輕松“注冊”。用戶體驗較好。
缺點是,完成注冊流程,而沒有完成資格認證流程的用戶,一般大部分權限不會開啟,所以一定要做好權限管理。
(2)把正常的注冊流程和網站特有的提交信息合成注冊流程
用戶需要一次性准備、提交大量信息,繁瑣,用戶體驗較差。
優點是用戶只分為“已注冊用戶”和“游客”,不存在“已注冊但資格認證未通過的用戶”,在平台的權限控制方面可以簡化很多。
延展
1.驗證碼的攻防之戰
驗證碼這個東西很有意思,先說說它的作用吧,“干掉機器人,保證是人類”。
我們想想,“用戶名注冊”這樣的方式如果不要求填寫驗證碼,是不是可以直接調接口提交表單來注冊用戶了?那對於平台方來說,是多個多少無效的用戶啊!它們背后都不是真實的人啊!
所以平台有需求,使用驗證碼,阻止機器人。而有守方,自然有攻方,一部分人有這個需求,要去批量注冊,最典型的就是微博上的水軍,所以他們兩方就像黑帽子和白帽子一樣,爭斗不休。下面我講幾個常見的驗證碼形式。
(1)圖片驗證碼
圖片驗證碼分為1.簡單輸入的驗證碼(英文、數字、漢字),2.需要計算的驗證碼(出一些計算題)。
這一類驗證碼,守方往往通過1.增大單個字符的范圍,比如從數字改為數字+字母,2.扭曲字符顯示,3.添加噪點,可以理解為添加背景色。
而攻方一般的解決方案包括1.比較笨的辦法,切片窮舉,把單個字符+它的幾種形式切分出來,存入“驗證碼庫”,每次識別則是切分成單個字符,再匹配“驗證碼庫”,僅針對簡單的圖形驗證碼有用,2.使用機器學習(了解不深),3.使用打碼平台。
(2)滑動滑塊
這種守方一般會通過生成多個“相似”的缺口,來加大攻方的開發難度,比如上圖中右下角的假缺口。
攻方一般則是通過圖片識別找到真正的缺口,計算位置,模擬滑動。
(3)點擊驗證
原理可以看這個問題騰訊的點擊驗證碼是什么原理?。
但實際上攻方依然有辦法可以模擬 😃
(4)點選圖片內指定一個/多個物品,比如12306。
遙想當年12306剛剛上這個功能的時候,無數正常網友都哀嚎買不到票,就知道這個驗證有多難了2333333。
當然從思路是來說也不是不能破解,但是不得不說,從頭來擼的話耗時耗力。當然我相信攻方肯定有解法,只是我確實不了解罷了~
驗證碼在網站被高頻訪問
,惡意攻擊的時候,也有攔截
的作用,比如爬蟲。
(5)通過提高門檻來驗證,比如手機號、郵箱
攻方一般會制作手機短信、郵件的“監聽”功能,來繞過這種驗證。
2.古早的記憶:密保問題
遙想當年注冊qq的時候,比現在復雜的多,要填寫3個問題加它的答案,也就是“密保問題”。
為什么當時會有這樣的需求呢?因為早期的qq並沒有手機號這樣強有力的護身符。
現在的網絡世界,我們可以說,手機號不遺失,所有用手機號注冊的或者綁定手機號的平台賬號都不會丟失。
但在當時那個“qq號+密碼”的情況下,密碼被盜,申訴找回自己的qq是一件很麻煩的事情,沒有“手機號找回賬號”這種快捷通道,只有“多個好友幫助申訴”這樣的渠道,再一個,就是“密保問題申訴”了——甚至在這樣的情況下,我記得有很多qq還是被盜后找不回來的。
其根本原因在於,平台不能良好的區分真正的用戶和盜號方,誰才是真正的用戶。而密保問題,是解決這種情況的一種途徑,因為真正的用戶是知道答案的,而盜號方不知道,這樣就區分出來了。