개발자
로그인 구동방식을 jwt token으로 사용하고 있는데(관리자페이지) 카카오 로그인을 추가하려니 동일하게 refresh Token으로 access token을 재발급받아 사용하는 방식이던데 이전에 react-kakao-login 라이브러리만 사용해서 직접적으로 하려니 이런 구동방식인지 이번에 알았네요 현재 refresh token을 http only 쿠키와 DB에 저장해서 클라이언트에서 refresh token을 가져와 전달해주면 백에서 DB와 대조하여 동일한지 검증을 한번 더 해주고 있습니다. 그렇다면 DB에 kakaoRefresh column을 하나 더 추가해서 이중으로 검증하는게 나은지 카카오에서 이미 검증을 한 후에 전달해주니 jwt토큰을 무시하고 1회 검증으로 하는게 나은지 의견을 듣고싶습니다
답변 1
최적화 과점에서 고려하신다면 refresh token 검증을 무시하고 jwt 검증만 진행하세요. refresh token은 DB 조회가 들어가기 때문입니다. 아니면 refresh token을 redis나 surrealDB(on memory) 같은 메모리 DB에 저장하세요. # 추가로 생각해 보면 좋은 점들 1. 자신이 만드는 서비스가 매우 작은 규모라면 refresh token을 쓰는 것도 낭비일 수 있습니다. 실제로 '공격'을 받았을 때 사용 하시는 것을 추천드립니다. 2. redis 같은 메모리 DB는 보편적으로 쓰이는듯 싶지만, 작은 규모 회사에선 엄청난 비용이 듭니다. 수 많은 동접자, 글로벌 서비스 등이 필요할 때 도입하시는 것을 추천드립니다. 3. refresh token DB에 추가할 때, 기존 유저 DB에 column을 추가하는 것이 아니라, 별도 테이블을 만들어서 관리하시는게 좋습니다. 간단히 예시를 들자면 id [PK] user_id [FK] refresh_token 이런 식으로요. 왜? why? i) user 테이블에 컬럼으로 추가하면 null이거나 비어 있는 경우가 발생합니다. 쓸데 없는 저장공간 낭비가 발생합니다. ii) 토큰 정보만 가져오면 되는데 쓸데 없이 user 테이블의 저장 블록을 읽어야 합니다.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!