天天看點

大話“使用者注冊激活,忘記密碼”發送郵件功能

鑒于最近有一部分童鞋留言關于“使用者注冊發送郵件激活”功能不太懂,在此我将用一片通俗易懂的話術簡單說明一下“使用者注冊發送郵件激活”的大緻原理和過程。

使用者注冊發送郵件是每個網站的最基本功能,一般有兩種處理方式:

  1. 第一種為直接發送激活郵件,使用者直接點選激活連結就會挑戰到相應的激活頁面
  2. 第二種為發送随機校驗碼到使用者指定的郵箱,然後使用者登入郵箱複制校驗碼

下面我簡單介紹一下2種方式的大緻實作原理;

  1. 直接發送郵件

關于直接發送郵件這一塊,其實并沒有想象的那麼深奧,一種最簡單的做法就是分為如下幾步走:

    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中的随機碼進行校驗即可

類似接收驗證碼效果如下:

大話“使用者注冊激活,忘記密碼”發送郵件功能

 另外有童鞋提到驗證郵箱的正确性這個問題?

其實你隻需驗證使用者輸入的郵箱格式正确性即可,至于這個郵箱存在與否,你是無法得知的,你也不需要知道,因為這是使用者自己的問題,畢竟他如果想收到郵件 肯定會輸入一個真實存在的郵箱位址的。

有疑問的童鞋可以背景留言!

一個熱衷于分享技術和生活的程式猿,讓我們一起交流吧~    

大話“使用者注冊激活,忘記密碼”發送郵件功能

微信掃描二維碼,關注我的公衆号