프로젝트 정리/경조사 가계부 프로젝트
10. 회원가입 토큰 DB적용
JunGi Jeong
2022. 6. 1. 00:18
DB에 EmailVerfied column값이 변경되지 않아서 해당 로직을 추가시켜 주었다.
@GetMapping("/check-email-token")
public String checkEmailToken(String token, String email, Model model) {
Account account = accountService.findMembersByEmail(email);
//accountRepository.findByEmail(email);
String view = "account/checked-email";
if (account == null){
model.addAttribute("error","wrong email");
return view;
}
if(!account.isValidToken(token)){
model.addAttribute("error","wrong email");
return view;
}
File file;
ZipEntry entry = null;
accountService.completeSignUp(account); // <- 이곳
model.addAttribute("numberOfUser", accountService.count()); // n번째 가입임을 알려주기 위함
model.addAttribute("nickname", account.getNickname());
return view;
}
public void completeSignUp(Account account) {
account.completeSignup();
accountRepository.completeSignup(account);
login(account);
}
public void completeSignup(Account account) {
Long userId = account.getId();
if(1 == accountMapper.completeSignup(userId)){
System.out.println("done");
}
else{
System.out.println("not done");
}
}
@UpdateProvider(type = AccountSQL.class, method = "completeSignup")
int completeSignup(@Param("userid") Long userid);
public String completeSignup(@Param("userid") Long userid) {
return new SQL() {{
UPDATE("account");
SET("emailVerified=1")
SET("joinedAt=NOW()")
WHERE("id=#{userid}")
}}.toString();
}