jsp網(wǎng)頁開發(fā)中,通過注冊(cè)郵箱找回密碼,并限制連接的有效時(shí)間
jsp網(wǎng)頁開發(fā)中,通過注冊(cè)郵箱找回密碼,并限制連接的有效時(shí)間???
在很多注冊(cè)系統(tǒng)中,都會(huì)有忘記密碼通過郵箱找回密碼這一功能,但這是怎么實(shí)現(xiàn)的呢。通過自己做的一個(gè)小項(xiàng)目來說說我是怎么做的吧。首先用戶在注冊(cè)時(shí)必須要填寫有效的電子郵箱地址。注冊(cè)成功時(shí),當(dāng)用戶登錄忘記密碼是,可以這樣來實(shí)現(xiàn)。首先要定義一個(gè)數(shù)據(jù)庫(kù)表:就叫test吧。里面有如下幾個(gè)字段:username(注冊(cè)的用戶名),url(當(dāng)選擇忘記密碼時(shí),會(huì)有一個(gè)隨機(jī)但不重復(fù)的的值作為url),forgetdate(申請(qǐng)找回密碼的時(shí)間)。用戶申請(qǐng)找回密碼,必須要輸入有效的用戶名和注冊(cè)時(shí)對(duì)應(yīng)的eamil地址。只有在這兩項(xiàng)都通過驗(yàn)證確實(shí)在數(shù)據(jù)庫(kù)中存在時(shí),產(chǎn)生一個(gè)隨機(jī)的url參數(shù) (用系統(tǒng)當(dāng)前時(shí)間的毫秒數(shù):System.currenttime()+username ,再通過md5加密(或者其他加密算法)生成一串字符串。)例如:發(fā)往郵箱的找回密碼鏈接地址是:http://127.0.0.1/bbs/finfpwd.jsp?url=(生成的字符串)。如何發(fā)送郵件在網(wǎng)上搜一下,很多。 在往test數(shù)據(jù)表中保存數(shù)據(jù)時(shí),要記錄一個(gè)session,用于保存提交找回密碼的時(shí)間。session.put("startdate",Systsm.currenttime()); 這時(shí)用戶登錄郵箱,點(diǎn)擊收到的連接,由于保存了session的時(shí)間信息。在finfpwd.jsp中有一個(gè)判斷語句。就是用戶點(diǎn)擊該鏈接的時(shí)間,將點(diǎn)擊該鏈接的時(shí)間與保存的session時(shí)間差與你設(shè)定的時(shí)間閥值做比較,如果小于,則跳到修改密碼的頁面,否則提示用戶該鏈接已過期。當(dāng)然在改密碼的頁面如何知道是那個(gè)用戶呢,很簡(jiǎn)單,在findpwd.jsp頁面中寫一個(gè)接收url參數(shù)的代碼。只要將生成的url字符串作為隱式的參數(shù)傳給后臺(tái)。這樣就可以修改密碼了。