68일차 카카오api 로그인 + jwt

이해찬·2023년 10월 18일
0

항해일지

목록 보기
30/35

2023.10.18

토큰 방식

  • 카카오 로그인 -> jwt토큰으로 만든 뒤, 해당 토큰인증을 config에서 permit해주지 않았을 때, 다른 페이지로 넘어가는 부분의 인증을 어떻게 할 것인가??
  • 현재 : 다른 페이지로 넘어갈 때, 토큰이 사라짐
  • websecurityconfig 내에서 인증권한을 페이지에게 주지 않으면 허용되지 않음

    -> requestMatchers(허용주소).permitAll() -> 해당 요청 허가
    -> anyRequest().authenticated() -> 그 외 모든 요청 인증처리



🤷‍♂️ 인증처리

  • 메인 페이지에서 네비게이션 페이지로 넘어갈 때의 인증을 처리하고 싶을 때,
    fetch로 쿠키값을 추출해서 컨트롤러에서 받게끔 하였으나,계속해서 redirection 이 security가 설정한 login-page 로 돌아가는 상황이 발생
  • 그리고 카카오 지도api의 일부를 차단하고 있고, 그 부분이 어디인지 명확하게 파악하기 어려움
  • 카카오 지도api가 나타나지 않음, permitall로 전부 허용하면 다시 나타남

  • 해당 주소를 허용하라는 것으로 보아서는 config 내에서 일단은 전부 요청을 허락하고, 인증이 필요한 부분들만 authenticated() 를 요청해야겠다.
  • 그렇다면 사용자가 최초의 페이지를 방문할 때, 로그인이 되어있지 않다면 로그인 페이지로 돌리고 무조건 로그인 하게끔 설정
  • 부분적으로 허용을 설정 -> 일부 카카오api의 기능이 차단되어 진다. ex) 지도 드래그, 같은 일부 기능들

-> 일단 전부 허용, 부분적으로 인증 요청하기

-> 최초 페이지에서 인증을 요청-> 로그인한 사용자만 이용




🤷‍♂️ 로그인 인증 요청 -> 최초 페이지에서만 인증 요청 안되는 중



  • 인덱스 페이지로 들어갈 때, 인증요청을 처리하게 하였고 제대로 카카오 로그인이 되고, 해당 정보를 쿼리로 불러오는 것 까지 확인했으나, 계속 security의 로그인 페이지로 돌아가는 상황 발생




🤷‍♂️ 기본 로그인




  • @Valid 어노테이션과 BindingResult를 사용하여 요청의 유효성 검사를 수행하는 경우, Spring MVC는 자동으로 요청의 바디(body)에서 필드 값을 읽어와서 SignupRequestDto 객체로 변환
  • 이러한 동작은 기본적으로 Content-Type: application/x-www-form-urlencoded 또는 Content-Type: application/json인 경우에 적용

-> 메인 페이지 authenticated()를 추가 -> 로그인 성공과 jwt토큰을 생성하지만 계속 로그인 페이지로 돌아옴



문제 : login -> index 로 안나가짐

💻 시도 -> 해결

  • 기존에 .requestMatchers("/").authenticated() -> .requestMatchers(HttpMethod.GET,"/").permitAll() 뒤에 페이지 허용
  • 로그인 성공 이후, 이동할 페이지 설정 추가


  • 그래도 여전히 메인 페이지로 안나가짐
  • 결국은 뒤에 페이지 허용, 부분을 추가하나 안추가하나 똑같은 원리 같은데 무슨 소리인지 모르겠다.

🤷‍♂️ 현재 인증하려는 페이지와 허용하려는 페이지를 중첩으로 사용하려고 해서 오류가 나나??
-> index페이지를 인증 요청과 허용하려는 부분을 중첩으로 사용 중 -> 이거를 분리해보기



  • 기존 인덱스 페이지를 ->홈 페이지로 변경
  • 인덱스 페이지에 인증 요청 -> 무조건 로그인을 하게
  • 로그인이 되면 홈 페이지로 반환이 되게 수정


해결 : 결국에는 인증,허용되는 페이지를 분리하고 로그인 성공 시 성공한 페이지로 반환을 해주어야 했다.


profile
디자인에서 개발자로

0개의 댓글