本次以密码找回使用邮箱方式找回为例
步骤:可能相互调用有点乱,但是我写的很清楚,应该不难看懂
1、获取用户名和邮箱,写好邮件内容,发送邮件:
2、上一步调用的邮件发送方法,在这里实现
3、数据加密,第一步中用到了加密。第四步用到了解密(这里都是被调用的方法):
4、由于发送的链接定位到是重置页面,也就是他给你随机分配一个新密码,你可以拿着这个新密码重新登陆,然后去修改,这里主要是讲如何将获得加密数据解密,并返回随机密码
邮件发送需要两个jar包要引进,保存在百度云资源里,连接如下:
jar包 提取码:cbsu
1、获取用户名和邮箱,写好邮件内容,发送邮件:
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
request.setCharacterEncoding("utf-8");
response.setContentType("application/json;charset=utf-8");
String name=request.getParameter("username");
String email=request.getParameter("email");
Map<String, Object> res = new HashMap<>();
String error=null;
if ("".equals(email)) {
error="邮箱不能为空";
}
else {
//我的用户类User
User user= null;
try {
//在我的用户数据库表中通过名字查找用户是否存在
user = UserDao.getByName(name);
System.out.println(user);
if (user == null) {
error="该用户不存在";
}else
{
//如果用户存在,还要查看对应用户的email是否一致
String emails=user.getEmail();
if(!emails.equals(email)){
error="邮箱不正确";
}else{
//正式编写邮件内容
//计算token
String token=String.format("%s,%s,%s,%s",user.getUid(),user.getUsername(),user.getEmail(),System.currentTimeMillis());
//加密,这里调用下面的SecureUtils类中的加密算法
token = SecureUtils._3DES_encode(emailKEY, token.getBytes());
//计算url,先获取你找回密码的URL地址,再加上你的加密token(为了防止有人冒充你的身份信息)
String url=request.getRequestURL().toString();
url=url.replace(request.getRequestURI(),"");