프로젝트 정리/경조사 가계부 프로젝트

10. 회원가입 토큰 DB적용

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();
    }

EmailVerfied 변경완료