그램그램 - 회원가입 후 이동

JIWOO YUN·2024년 5월 15일
0

GramGram

목록 보기
5/11
post-custom-banner
#할일

- 회원가입이 후 로그인 페이지로 이동
	- /member/login 으로 리다이렉트 진행
- 아이디 중복으로 실패시 다시 회원가입화면으로 돌아가게

회원가입 후에 이동하는 곳이 로그인페이지로 이동시키는 법

  • 회원가입 post를 보내고 로그인 페이지로 보내기.
    • 여기서 메시지를 추가적으로 보내고 싶은 경우
      • 메시지를 추가적으로 삽입시 한글의 경우 깨지는 현장이 존재하기 때문에 url encoding이 필요.
    // 타임리프 문법(파라미터, ? 뒤에 입력된 매개변수들)
    const params = /*[[ ${param} ]]*/ null;

    if (params.msg) {
        toastNotice(params.msg[0]);
    }

    if (params.errorMsg) {
        toastWarning(params.errorMsg[0]);
    }
  • 타임리프 문법으로 ? 뒤에 입력된 매개변수를 가져와서 메시지로 보내는 스크립트.
return "redirect:/member/login?msg=" + Ut.url.encode("회원가입이완료되었습니다.\n 로그인 후 이용해주세요.");
  • 회원가입 성공시 login으로 리다이렉트가 진행되면서 메시지창에 오른쪽 메시지가 사용되게 진행.

RsData 도입하기

  • 규격을 만들기 위한 코드 도입.
    • 한번 규격을 잘 만들어 놓으면 여러 부분에서 사용이 가능해진다.
    • 형식의 경우 실행결과코드, 메시지, 데이터 순으로 따져보니 json 형식과 꽤 유사하다.
@Getter
@Setter
@AllArgsConstructor
public class RsData<T> {

    private String resultCode;
    private String msg;
    private T data;

    public static <T> RsData<T> of(String resultCode, String msg, T data) {
        return new RsData<>(resultCode, msg, data);
    }

    public static <T> RsData<T> of(String resultCode, String msg) {
        return of(resultCode, msg, null);
    }

    public static <T> RsData<T> successOf(T data) {
        return of("S-1", "성공", data);
    }

    public static <T> RsData<T> failOf(T data) {
        return of("F-1", "실패", data);
    }

    public boolean isSuccess() {
        return resultCode.startsWith("S-");
    }

    public boolean isFail() {
        return isSuccess() == false;
    }
}
  • 아이디 중복으로 실패하는 경우 확인 방법.

    • RsData를 도입

    • //만약 존재한다면 이걸 반환
      return RsData.of("F-1", "해당 아이디(%s)는 사용중입니다.".formatted(username));
      
      //회원가입에 성공한다면 이걸 반환
      return RsData.of("S-1", "회원가입이 완료되었습니다.", member);

memberController에서 만약 실패했다는 걸 받게된 경우

  • 메시지를 띄우고 다시 돌아가게 하는 스크립트 코드를 추가한다.
<script>
    alert('해당 아이디(user1)는 이미 사용중입니다.');
    history.back();
</script>
  • user1으로 임시로 적용

PR 내용

profile
열심히하자
post-custom-banner

0개의 댓글