java web 邮箱激活 与 忘记密码(重置密码)
推薦: java后臺通用權限管理系統(springboot)(https://blog.csdn.net/zwx19921215/article/details/97806078)
推薦:java 個人博客系統高級版(springboot)(https://blog.csdn.net/zwx19921215/article/details/102665020)
推薦:Java秒殺系統優化(高性能高并發)(https://blog.csdn.net/zwx19921215/article/details/103270209)
推薦java聊天室項目:http://zyshare.cn/resource/detail/15
?
由于在項目中要實現用戶注冊的郵箱激活以及忘記密碼重置密碼功能,所以通過查閱資料做了一個簡單的設計和實現。
郵箱激活
背景:幾乎每個網站或論壇之類的用戶注冊后都需要通過發送郵件到郵箱激活用戶。 設計: 激活步驟:1、 發送激活操作鏈接地址至用戶郵箱。
2、 用戶至郵箱查收郵件。
3、 用戶點擊鏈接,跳轉至成功頁面(修改激活狀態),激活成功。 實現: /*** 發送郵件* * @param request* @return*/@RequestMapping(value = "/sendEmail.jhtml")@ResponseBodypublic String sendEmail(HttpServletRequest request) {DynamicParams params = new DynamicParams(request);StringBuilder builder = new StringBuilder();StringBuffer url = new StringBuffer();String type = params.getString("type");Long uid = params.getLong("id");User user = userManager.find(uid);String subject = "";// 判斷是否已激活if ("1".equals(String.valueOf(user.getEmailStatus()))) {return errMsg();}String contextPath = request.getContextPath();String rUrl = String.valueOf(request.getRequestURL());url.append(rUrl.substring(0, rUrl.indexOf(contextPath)));url.append(contextPath + "/account");// 郵箱激活// url.append("/activateEmail.jhtml?email=" + user.getEmail() +// "&id=" + uid + "&mode=activate");url.append("/activateEmail.jhtml?id=" + uid + "&mode=activate");// 正文builder.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" </head><body>");builder.append("請點擊下方鏈接激活您的郵箱,完成激活郵箱的操作!");builder.append("<br/><br/>");builder.append("<a href=\"" + url + "\">");builder.append(url);builder.append("</a>");builder.append("</body></html>");subject = "郵箱地址激活 - xxxx";MailSender.mailSimple(user.getEmail(), subject, builder.toString(),false, null);return successMsg();}/*** 激活郵箱* * @param request* @return*/@RequestMapping(value = "/activateEmail.jhtml")public String activateEmail(HttpServletRequest request, Model model) {DynamicParams params = new DynamicParams(request);// 激活之前查詢User user = userManager.find(params.getLong("id"));if ("1".equals(String.valueOf(user.getEmailStatus()))) {// 已激活model.addAttribute("flag", false);} else {// 未激活userManager.activateEmail(params);// 激活之后查詢user = userManager.find(params.getLong("id"));request.getSession().setAttribute("sessionUser", user);model.addAttribute("mode", params.getString("mode"));model.addAttribute("flag", true);}return "site/modules/account/activateSuccess";} MailSender.mailSimple(user.getEmail(), subject, builder.toString(),false, null);即為發送郵件工具類,如有不明白可參考我之前的文章(spring mail發送郵件)
忘記密碼(重置密碼)
背景:同樣是各大網站都會擁有的一個功能,通過發送驗證碼到用戶注冊的郵箱重置密碼
設計:1)輸入用戶名/手機號碼/郵箱,驗證碼。
? ? ? ? ? ? ?2)用戶選擇手機驗證或郵箱驗證,發送驗證碼到手機或郵箱。如果用戶郵箱未激活,則不允許郵箱驗證。
? ? ? ? ? ? ?3)用戶輸入驗證碼成功,進入密碼重新設置頁面。
? ? ? ? ? ? ?4)重置密碼
?
流程:
?
?
?
?
實現:
?
/*** 發送郵件* * @param request* @return*/@RequestMapping(value = "/sendEmail.jhtml")@ResponseBodypublic String sendEmail(HttpServletRequest request) {DynamicParams params = new DynamicParams(request);StringBuilder builder = new StringBuilder();StringBuffer url = new StringBuffer();String type = params.getString("type");Long uid = params.getLong("id");User user = userManager.find(uid);String subject = "";// type = forget 密碼重置String verifyCode = VerifyCodeUtils.generateVerifyCode(4);request.getSession().setAttribute("resetCertCode", verifyCode);url.append("<font color='red'>" + verifyCode + "</font>");// 正文builder.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\" /></head><body>");builder.append("要使用新的密碼, 請將已下字符輸入驗證框中,完成重置密碼的操作!");builder.append("<br/><br/>");builder.append("<div>" + url + "</div>");builder.append("</body></html>");subject = "密碼重置 - xxxx";MailSender.mailSimple(user.getEmail(), subject, builder.toString(),false, null);return successMsg();}
至此,激活郵箱和忘記密碼功能已初步完成!如有不同看法的朋友,請留下您寶貴的意見或建議。
關注微信公眾號“蝦米聊吧”,后續持續放送“技術架構和資料”干貨!!!???
| 一個熱衷于分享技術和生活的程序猿,讓我們一起交流吧~?????? ???????????????????? ??????????????????微信掃描二維碼,關注我的公眾號 |
?
總結
以上是生活随笔為你收集整理的java web 邮箱激活 与 忘记密码(重置密码)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 空调制热半天没反应怎么回事(如何选择空调
- 下一篇: java.lang.IllegalArg