天天看點

ThinkPHP 3.2 使用者注冊郵箱驗證帳号找回密碼

當然現在有的網站也有手機短信的方式找回密碼,原理就是通過發送驗證碼來驗明正身,和發送郵件驗證一樣,最終還是要通過重置密碼來完成找回密碼的流程。

本文将使用PHP+Mysql+jQuery來實作一個密碼找回的功能,一般步驟是:

1.表單輸入注冊時的郵箱;

2.驗證使用者郵箱是否正确,如果使用者郵箱不存在網站的使用者表中,則提示使用者郵箱未注冊;

3.發送郵件,如果使用者郵箱确實存在使用者表中,則組合用于驗證使用者資訊的字元串,并構造URL發送到使用者郵箱中;

4.使用者登入郵箱收取郵件,點選URL連結到網站驗證程式;

5.網站程式通過使用者請求的字元串查詢本地使用者表,比對使用者資訊是否正确;

6.如果正确則轉到重置密碼頁面重新設定新密碼,反之則提示使用者驗證無效。

我們在找回密碼的頁面上放置一個要求使用者輸入注冊時所用的郵箱,然後送出前台js來處理互動。

ThinkPHP 3.2 使用者注冊郵箱驗證帳号找回密碼

當使用者輸入完郵箱并點選送出後,jQuery先驗證郵箱格式是否正确,如果正确則通過向背景sendmail.php發送Ajax請求,sendmail.php負責驗證郵箱是否存在和發送郵件,并會傳回相應的處理結果給前台頁面,請看jQuery代碼:

 說明:這一步隻要是使用者輸入郵箱位址的時候,驗證該郵箱是否被注冊過,以及郵箱的格式驗證是否正确,同時給使用者郵箱發送一份郵件,使用者點選就可以修改密碼啦!

ThinkPHP 3.2 使用者注冊郵箱驗證帳号找回密碼

說明:首先接受參數email和token,然後根據email查詢資料表user中是否存在該Email,如果存在則擷取該使用者的資訊,并且和資料庫中的token組合方式一樣建構token值,然後與url傳過來的token進行對比,如果目前時間與發送郵件時的時間相差超過24小時的,則提示“該連結已過期!”,反之,則說明連結有效,并且調轉到重置密碼頁面,最後就是使用者自己設定新密碼了。

ThinkPHP 3.2 使用者注冊郵箱驗證帳号找回密碼