大话“用户注册激活,忘记密码”发送邮件功能
鑒于最近有一部分童鞋留言關于“用戶注冊發送郵件激活”功能不太懂,在此我將用一片通俗易懂的話術簡單說明一下“用戶注冊發送郵件激活”的大致原理和過程。
?
用戶注冊發送郵件是每個網站的最基本功能,一般有兩種處理方式:
?
下面我簡單介紹一下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中的隨機碼進行校驗即可
?
類似接收驗證碼效果如下:
?
?另外有童鞋提到驗證郵箱的正確性這個問題?
其實你只需驗證用戶輸入的郵箱格式正確性即可,至于這個郵箱存在與否,你是無法得知的,你也不需要知道,因為這是用戶自己的問題,畢竟他如果想收到郵件 肯定會輸入一個真實存在的郵箱地址的。
?
有疑問的童鞋可以后臺留言!
?
一個熱衷于分享技術和生活的程序猿,讓我們一起交流吧~????
?
微信掃描二維碼,關注我的公眾號
?
總結
以上是生活随笔為你收集整理的大话“用户注册激活,忘记密码”发送邮件功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 合肥:置换新能源车将可获 5000 元内
- 下一篇: redis常用数据类型的场景,你真的用对