鑑於最近有一部分童鞋留言關於“用戶註冊發送郵件激活”功能不太懂,在此我將用一片通俗易懂的話術簡單說明一下“用戶註冊發送郵件激活”的大致原理和過程。
用戶註冊發送郵件是每個網站的最基本功能,一般有兩種處理方式:
- 第一種爲直接發送激活郵件,用戶直接點擊激活鏈接就會挑戰到相應的激活頁面
- 第二種爲發送隨機校驗碼到用戶指定的郵箱,然後用戶登錄郵箱複製校驗碼
下面我簡單介紹一下2種方式的大致實現原理;
- 直接發送郵件
關於直接發送郵件這一塊,其實並沒有想象的那麼深奧,一種最簡單的做法就是分爲如下幾步走:
1)第一步設計用戶信息
用戶信息包含激活狀態status字段,同時包含一個唯一標識字段code,這個標識可以通過uuid之類的規則生成即可。
2)第二步設計接收激活鏈接的接口
該接口需要包含一個用戶的唯一標識code,通過code用來校驗該激活請求的身份,如果身份合法,判斷status狀態是否已激活,如果已激活則提示已激活,勿重複激活之類的提示語,如果未激活,則更改status爲激活狀態即可,提示激活成功。
另外補充:還可以設置過期時間之類的,如果超過指定時間範圍發送的激活請求可以提示請求已過期,提示重新發送激活請求等。
模擬請求鏈接:http://ip:port/confirm?code= aa88f5b3c1024e7eb12ca7a5154e1db9
注:code字符串只是用來標識身份的,你也可以用其它任何方式代替,只需注意對url後面的參數進行編碼加密,然後接收到後在進行轉碼解密即可,保證身份信息的安全性。
3)第三步就是發送郵件
關於發送郵件,我覺得沒有多少可以說的,如果你是測試該功能,直接採用個人qq郵箱或者163郵箱之類(具體怎麼配置,怎麼寫代碼發送,自行百度一下),但是 如果是企業生產環境強烈建議採用企業郵箱或者搭建企業郵件服務器,因爲個人郵箱是有很多限制的。
如下是七牛雲用戶註冊的激活郵件,當然參數被加密了。
如下爲重複點擊激活鏈接的效果:
2.發送激活碼
發送激活碼應該是越來越普遍和通用的一種方式了,畢竟簡單方便。
1)生成隨機碼
後臺通過一定的規則隨機生成4-6位(一般是5位左右,看情況)的隨機數字,然後將其存入到緩存redis並設置過期時間(一般是幾分鐘左右),目的是防止一個過期驗證碼無限次使用。
2)發送驗證碼郵件
將後臺生成的隨機碼以郵件的形式發送到用戶郵箱即可(具體郵件發送請自行百度)
3)用戶點擊提交按鈕後,後臺獲取用戶輸入的隨機碼與redis中的隨機碼進行校驗即可
類似接收驗證碼效果如下:
另外有童鞋提到驗證郵箱的正確性這個問題?
其實你只需驗證用戶輸入的郵箱格式正確性即可,至於這個郵箱存在與否,你是無法得知的,你也不需要知道,因爲這是用戶自己的問題,畢竟他如果想收到郵件 肯定會輸入一個真實存在的郵箱地址的。
有疑問的童鞋可以後臺留言!
一個熱衷於分享技術和生活的程序猿,讓我們一起交流吧~
微信掃描二維碼,關注我的公衆號