완두콩__
50
2021-12-08 11:51:46
1
301

컨트롤러에서 db데이터 유효성 검사


따로 로그인하던 구매자와 판매자 로그인 api를 하나로 합치려고 합니다.

즉, 한개의 api로 구매자, 판매자 둘 다 로그인 하는 방식으로 개발하려하는데

컨트롤러에서 각 테이블에 들어있는 아이디에 대해 유효성 체크를 하는 방법을 여쭤보려합니다.

* 기존에는 api가 다르다 보니 각자의 mapper에서 sql문으로 입력한 id와pw 테이블에 들어있는 id/pw에 대한 유효성 체크를 했습니다.

* id가 없을 경우와 pw가 다를경우에 대한 코드는 이미 되어있습니다.


컨트롤러에서 이 아이디와 패스워드가 어떤 테이블에 들어있는지 확인 할 수 있다면 if문을 활용하여

기존 구매자와 바이어 로그인 처리를 할 수 있을 것 같습니다.


초급 개발자라 제가 생각한 이 방법이 최선의 방법은 아닐 것이라 생각이 듭니다.

위 방법에 대한 코드 방법과 더 좋은 방법을 아신다면 도움을 부탁 드리겠습니다.

+ 코드를 예시로 들어주신다면 더욱 감사하겠습니다 ㅠㅠ

0
  • 답변 1

  • 이핫
    477
    2021-12-08 12:37:22

    보통은
    프론트쪽에서 로그인하려는 사람이 구매자로 로그인하느지 판매자로 로그인하는지 선택하게끔해서 값을 전달 받는 방향으로 많이 합니다...
    DB테이블 구조가 어떤지 모르겠지만... 테이블이 별도라고 하시니... ID/PW가 같은 경우도 있을거라고 생각이 되서 프론트에서 확실히 구분짓는 값을 받는게 맞을거 같네요...
    만약 위 부분에 그럴경우는 프로세스상 해결이 되어있다고 하시면...
    저는 SQL문으로 해결하려고 할거 같네요...

    이게 되는지 해보진 않았는데 아마 저라면 구매자 테이블과 판매자 테이블중 묶을수 있는 칼럼들에 별칭지정하고, 구분자용 하드코딩용 칼럼을하나 추가해서 union을 하고 그뒤에 ID/PW가 있는지 유효성 체크 진행할거 같네요...

    select
      *
    from (
    select
    ID/PW등 구매자 테이블과 판매자 테이블 중복 정보
    , 'SELLER' as userDiv // 구분자용 정보
    from 판매자 테이블

         union

    select
    ID/PW등 구매자 테이블과 판매자 테이블 중복 정보
    , 'BUYER' as userDiv // 구분자용 정보
    from 구매자 테이블
    ) UI

    where UI.ID = 입력받은 아이디
    and UI.PW = 입력받은 비밀번호

  • 로그인을 하시면 답변을 등록할 수 있습니다.