Skip to content

Commit 56d5b77

Browse files
committed
注册
1 parent b4cd29e commit 56d5b77

File tree

8 files changed

+99
-35
lines changed

8 files changed

+99
-35
lines changed

core/src/main/java/info/xiaomo/core/untils/MailUtil.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,28 +71,25 @@ public static void send(String toEmail, String subject, String content) {
7171
public static String redirectValidateUrl(String email, String password) {
7272
Long now = DateUtil.getNowOfMills();
7373
StringBuilder sb = new StringBuilder("点击下面链接激活账号,48小时生效,否则重新注册账号,链接只能使用一次,请尽快激活!</br>");
74-
sb.append("<a href=\"http://xiaomo.info/validate.html?email=");
74+
sb.append("<a href=\"http://localhost:8080/user/validate?email=");
7575
sb.append(email);
7676
sb.append("&password=");
7777
sb.append(password);
78-
sb.append("&validateCode=");
79-
sb.append(MD5Util.encode(email, String.valueOf(now)));//邮箱加上当前时间戳,以保证每个验证码都是不一样的
8078
sb.append("&time=");
8179
sb.append(now);
8280
sb.append("\">");
83-
sb.append("http://xiaomo.info/validate.html?email=");
81+
sb.append("http://localhost:8080/user/validate?email=");
8482
sb.append(email);
8583
sb.append("&password=");
8684
sb.append(password);
87-
sb.append("&validateCode=");
88-
sb.append(MD5Util.encode(email, String.valueOf(now)));//邮箱加上当前时间戳,以保证每个验证码都是不一样的
8985
sb.append("&time=");
9086
sb.append(now);
9187
sb.append("</a><br/>");
9288
sb.append("<span style='float:right;padding-right:4%'>小莫</span></br>");
9389
sb.append("<span style='float:right'>");
9490
sb.append(DateUtil.getFormatDate());
9591
sb.append("</span></br>");
92+
System.out.println(sb.toString());
9693
return sb.toString();
9794
}
9895

website/src/main/java/info/xiaomo/website/controller/UserController.java

Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,16 @@ public UserController(UserService service) {
4848
}
4949

5050

51-
@RequestMapping(value = "toLogin",method = RequestMethod.GET)
52-
public String login() {
51+
@RequestMapping(value = "toLogin", method = RequestMethod.GET)
52+
public String toLogin() {
5353
return UserView.LOGIN.getName();
5454
}
5555

56+
@RequestMapping(value = "toRegister", method = RequestMethod.GET)
57+
public String toRegister() {
58+
return UserView.REGISTER.getName();
59+
}
60+
5661
/**
5762
* 登录
5863
*
@@ -66,12 +71,12 @@ public String login(@RequestParam String email,
6671
UserModel userModel = service.findUserByEmail(email);
6772
//找不到用户
6873
if (userModel == null) {
69-
map.put("errMsg","找不到用户");
74+
map.put("errMsg", "找不到用户");
7075
return UserView.LOGIN.getName();
7176
}
7277
//密码不正确
7378
if (!MD5Util.encode(password, userModel.getSalt()).equals(userModel.getPassword())) {
74-
map.put("errMsg","密码不正确");
79+
map.put("errMsg", "密码不正确");
7580
return UserView.LOGIN.getName();
7681
}
7782
session.setAttribute("currentUser", userModel);
@@ -104,7 +109,6 @@ public Result addUser(@RequestBody UserModel user) {
104109
}
105110
String salt = RandomUtil.createSalt();
106111
user.setPassword(MD5Util.encode(user.getPassword(), salt));
107-
user.setValidateCode(MD5Util.encode(user.getEmail(), ""));
108112
user.setSalt(salt);
109113
service.addUser(user);
110114
return new Result(user);
@@ -115,21 +119,22 @@ public Result addUser(@RequestBody UserModel user) {
115119
*
116120
* @return result
117121
*/
118-
@RequestMapping(value = "register/{email}/{password}", method = RequestMethod.POST)
119-
public Result register(@PathVariable("email") String email, @PathVariable("password") String password) throws Exception {
122+
@RequestMapping(value = "register", method = RequestMethod.POST)
123+
public String register(@RequestParam("email") String email,
124+
@RequestParam("password") String password,
125+
ModelMap map) throws Exception {
120126
UserModel userModel = service.findUserByEmail(email);
121127
//邮箱被占用
122128
if (userModel != null) {
123-
return new Result(Err.USER_REPEAT.getCode(), Err.USER_REPEAT.getMessage());
129+
map.put("errMsg", "邮箱被占用!");
130+
return UserView.REGISTER.getName();
124131
}
125132
String redirectValidateUrl = MailUtil.redirectValidateUrl(email, password);
126133
MailUtil.send(email, "帐号激活邮件", redirectValidateUrl);
127-
return new Result(redirectValidateUrl);
134+
return UserView.REGISTER_INFO.getName();
128135
}
129136

130137

131-
132-
133138
/**
134139
* 修改密码
135140
*
@@ -168,7 +173,6 @@ public Result update(@RequestBody UserModel user) throws UserNotFoundException {
168173
userModel.setPhone(user.getPhone());
169174
userModel.setAddress(user.getAddress());
170175
userModel.setGender(user.getGender());
171-
userModel.setValidateCode(MD5Util.encode(user.getEmail(), ""));
172176
UserModel updateUser = service.updateUser(userModel);
173177
return new Result(updateUser);
174178
}
@@ -206,33 +210,39 @@ public Result deleteUserById(@PathVariable("id") Long id) throws UserNotFoundExc
206210
/**
207211
* 处理激活
208212
*/
209-
@RequestMapping(value = "validateEmail", method = RequestMethod.POST)
210-
public Result validateEmail(@RequestBody UserModel user
213+
@RequestMapping(value = "validate", method = RequestMethod.GET)
214+
public String validateEmail(
215+
@RequestParam String email,
216+
@RequestParam String password,
217+
@RequestParam Long time,
218+
ModelMap map,
219+
HttpSession session
211220
) throws ServiceException, ParseException, UserNotFoundException {
212221
//数据访问层,通过email获取用户信息
213-
UserModel userModel = service.findUserByEmail(user.getEmail());
222+
UserModel userModel = service.findUserByEmail(email);
214223
if (userModel != null) {
215-
return new Result(Err.USER_REPEAT.getCode(), Err.USER_REPEAT.getMessage());
224+
map.put("errMsg", "邮箱己被占用");
225+
return UserView.REGISTER.getName();
216226
}
217227
//验证码是否过期
218-
if (user.getRegisterTime() + DateUtil.ONE_DAY_IN_MILLISECONDS * 2 < DateUtil.getNowOfMills()) {
219-
LOGGER.info("用户{}使用己过期的激活码{}激活邮箱失败!", user.getEmail(), user.getEmail());
220-
return new Result(Err.TIME_PASSED.getCode(), Err.TIME_PASSED.getMessage());
228+
if (time + DateUtil.ONE_DAY_IN_MILLISECONDS * 2 < DateUtil.getNowOfMills()) {
229+
LOGGER.info("用户{}使用己过期时间{}激活邮箱失败!", email, time);
230+
map.put("errMsg", "时间己过期,请重新注册");
231+
return UserView.REGISTER.getName();
221232
}
222233
//激活
223234
String salt = RandomUtil.createSalt();
224235
userModel = new UserModel();
225-
userModel.setNickName(user.getNickName());
226-
userModel.setEmail(user.getEmail());
236+
userModel.setNickName(email);
237+
userModel.setEmail(email);
227238
userModel.setGender(GenderType.secret);
228-
userModel.setValidateCode(MD5Util.encode(user.getEmail(), salt));
229239
userModel.setPhone(0L);
230240
userModel.setSalt(salt);
231241
userModel.setAddress("");
232-
userModel.setPassword(MD5Util.encode(user.getPassword(), salt));
242+
userModel.setPassword(MD5Util.encode(password, salt));
233243
userModel = service.addUser(userModel);
234-
LOGGER.info("用户{}使用激活码{}激活邮箱成功!", userModel.getEmail(), userModel.getValidateCode());
235-
return new Result(userModel);
244+
LOGGER.info("用户{}激活邮箱成功!", userModel.getEmail());
245+
session.setAttribute("currentUser", userModel);
246+
return UserView.INDEX.getName();
236247
}
237-
238248
}

website/src/main/java/info/xiaomo/website/model/UserModel.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,6 @@ public class UserModel extends BaseModel implements Serializable {
4444
@Column(name = "Salt")
4545
private String salt;
4646

47-
@Column(name = "ValidateCode")
48-
private String validateCode;
49-
5047
@Column(name = "Gender")
5148
private int gender = 0;
5249

website/src/main/java/info/xiaomo/website/view/UserView.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
public enum UserView {
1818

1919
LOGIN("login"),
20+
REGISTER("register"),
21+
REGISTER_INFO("info"),
2022
INDEX("/web/index");
2123

2224
private String name;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport"
6+
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
7+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
8+
<title>Document</title>
9+
</head>
10+
<body>
11+
请前往邮箱查看邮件并激活
12+
</body>
13+
</html>

website/src/main/resources/templates/login.vm

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,12 @@
1515
<h1>${errMsg}</h1>
1616
#end
1717
<div><input type="submit" value="登录"/></div>
18+
<div><input type="button" value="注册" onclick="toRegister()"/></div>
1819
</form>
20+
<script>
21+
function toRegister() {
22+
window.location.href="toRegister";
23+
}
24+
</script>
1925
</body>
2026
</html>
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport"
6+
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
7+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
8+
<title>login</title>
9+
</head>
10+
<body>
11+
<form action="/user/register" method="post">
12+
<div><label> 用户名 : <input type="text" name="email"/> </label></div>
13+
<div><label> 密 码 : <input type="password" name="password"/> </label></div>
14+
#if($errMsg)
15+
<h1>${errMsg}</h1>
16+
#end
17+
<div><input type="submit" value="注册"/></div>
18+
</form>
19+
</body>
20+
</html>
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!doctype html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<meta name="viewport"
6+
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
7+
<meta http-equiv="X-UA-Compatible" content="ie=edge">
8+
<title>login</title>
9+
</head>
10+
<body>
11+
<form action="/user/login" method="post">
12+
<div><label> 邮箱 : <input type="text" name="email"/> </label></div>
13+
#if($errMsg)
14+
<h1>${errMsg}</h1>
15+
#end
16+
<div><input type="submit" value="注册"/></div>
17+
</form>
18+
</body>
19+
</html>

0 commit comments

Comments
 (0)