[넘블] 3주차 개발일지

savannah030·2022년 4월 25일
1

넘블

목록 보기
3/4

4/25(월)

개발일지 작성

  • 밀렸던 2주차 개발일지를 작성했다.(주말에 삽질하느라 바빠서..)

소셜 로그인 흐름 다시 정리!

  • 카카오 서버에서 받아온 accessToken으로 유저 정보 받아오고 회원가입/로그인/API권한확인 흐름을 정리해 보았다.
    (아직 작성중이다)
  • 로그인/로그아웃 처리를 어떻게 해야할기 감이 잡히지 않는데, 이따 프론트 팀원분과 회의할 때 물어봐야겠다.

고칠 것

  • 프론트에서 accessToken을 못받았을 때 에러 처리
  • 쿠키는 리다이렉트할때가 아니라 회원가입할때랑 로그인할 때, (아직 로그아웃은 생각 x)
  • 이메일은 step2에서 보내주심
  • API 문서는 POSTMAN 공유
  • API 2개 만들기(중복확인, 쿠키정보 보내면 사용자 정보 리턴)
  • 어디서든 쿠키에 담긴 토큰값이 있냐없냐 확인(있어야 로그인된 증표) -> 스프링 시큐리티 필터로 구현

삽질

스프링 시큐리티 필터 에러

Factory method 'springSecurityFilterChain' threw exception; nested exception is java.lang.NullPointerException
import org.springframework.web.filter.CorsFilter;가 임포트 됐어야 하는데
import org.apache.catalina.filters.CorsFilter;가 임포트 돼서 생긴 문제!!

이 참에 필터 우선순위도 좀 공부해봐야겠다

닉네임 중복 확인 에러

어떤 이름을 넣어도 무조건 중복이라 뜬다..

백엔드에 닉네임은 잘 받아오는데.. 프론트 팀원분께 여쭤봐야겠다! -> 나는 true, false를 리턴했는데 프론트분은 200,400로 응답값 받았기 때문이었음! 백엔드 분의 제안으로 모든 응답값을 ReponseEntity로 통일하였다!

4/26(화)

로컬에서 POSTMAN 테스트해보기

  • 회원가입할 때 관심사도 저장할 수 있도록 구현
    (양방향 매핑 구현해야 돼서 까다로웠다)
  • 응답 ReponseEntity로 통일(HttpStatus는 무조건 200으로 통일하고 status값을 body에 넣는식으로! 이렇게 해야 프론트에서도 개발하기 편하다고 하셨던 것 같다.)
    예) 닉네임 중복검사 실패 -> HttpStatus는 200이고 status를 400으로 주었다.

parseCookie 에러

다음과 같은 함수가 에러가 났다. 이 함수는 요청의 헤더 중 Set-Cookie를 갖고와 access_token key의 값을 리턴하는 함수다.

public String parseCookie(HttpServletRequest request){
        String bearerToken = request.getHeader("Set-Cookie");

        if (StringUtils.hasText(bearerToken) && bearerToken.startsWith("access_token")) {
            return bearerToken.substring(13);
        }
        return null;
    }

첨에 에러 떠서 jwt 오픈소스 보고 고치려 했는데 무리..
-> jwt 라이브러리를 잘못 갔다쓴 게 아니라 내가 입력값을 잘못준 게 아닐까?
-> 헤더에 access_token값만 줬어야했음!!!

아래 예시처럼 뒤에 만료일, 등등 다른 값까지 다 붙이면 안됨

정확히 access_token만 줘야 파싱할 수 있음!

배운점

헤더에 대해 좀 더 깊이있게 생각해 본 점.
개인프로젝트 했으면 이 부분 전혀 생각하지 않고 넘어갔을 것이다.
(프론트로 리액트 대신 타임리프 쓴다고 하면 그냥 @Controller만 쓰니까 http 헤더, 바디 뭐있는지 생각할 일이 없었을 것이다)

profile
백견이불여일타

2개의 댓글

comment-user-thumbnail
2022년 5월 18일

엇 승윤님 개발 일지는 처음 읽어보는데
프로젝트 진행하시면서 이런 고민하신것들 알 수 있어서 재밌게 읽었어요
로그인 때문에 너무 힘드셨죠 ? 수고하셨어요 🥲🙏❤️

1개의 답글