java web激活邮箱并找回密码

网友投稿 205 2023-07-26


java web激活邮箱并找回密码

几乎每个网站或论坛之类的用户注册后都需要通过发送邮件到邮箱激活用户,如何激活邮箱呐?

设计激活步骤:

1、发送激活操作链接地址至用户邮箱。

2、用户至邮箱查收邮件。

3、用户点击链接,跳转至成功页面(修改激活状态),激活成功。

实现:

/**

* 发送邮件

*

* @param request

* @return

*/

@RequestMapping(value = "/sendEmail.jhtml")

@ResponseBody

public 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("

builder.append("请点击下方链接激活您的邮箱,完成激活邮箱的操作!");

builder.append("

");

builder.append("");

builder.append(url);

builder.append("");

builder.append("");

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", paramshttp://.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)用户输入验证码成功,进入密码重新设置页面。

   &nbhttp://sp;         4)重置密码

流程:

实现:

/**

* 发送邮件

*

* @param request

* @return

*/

@RequestMapping(value = "/sendEmail.jhtml")

@ResponseBody

public 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("" + verifyCode + "");

// 正文

builder.append("

builder.append("要使用新的密码, 请将已下字符输入验证框中,完成重置密码的操作!");

builder.append("

");

builder.append("

builder.append("");

subject = "密码重置 - xxxx";

MailSender.mailSimple(user.getEmail(), subject, builder.toString(),

false, null);

return successMsg();

}

至此,激活邮箱和忘记密码功能已初步完成!希望对大家的学习有所帮助,大家可以动手实现激活邮箱并找回密码。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:API文档: 了解API文档的重要性和使用方法
下一篇:Bootstrap每天必学之按钮(一)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~