강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

원피스를 찾아서님의 프로필 이미지
원피스를 찾아서

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

회원가입 구현하기

질문있습니다.

작성

·

442

0

소셜로그인 관련 의문점이 있어 질문합니다.

소셜로그인 연습을 하고 있는데  데이터베이스에 사용자 이메일(아이디),sid, provider만 저장하고 있는데 구글링 해 본결과 refresh token도 데이터베이스에 같이 저장을 한다고 합니다.

access token 만료시 해당 refresh토큰으로 토큰 갱신 후 다시 사용자에게 발급을 하는거 같은데 제가 이해한게 맞을까요?

데이터베이스에 refresh token도 저장하시나요?

답변 7

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

jwt는 어차피 내용물이 노출되며 비밀키만 철저히 감춰두면 위조되지 않습니다. jwt 전체가 타인에게 유출될 때를 의미한 것임니다.

0

털리다는게 jwt해독을 말씀하시는건가요? 

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

만약 그 jwt토큰이 털릴 때 어떻게 대처할지 생각해보셨나요?

0

로컬로그인 같은경우도 리프레쉬, 엑세스토큰을 발급받아서 써야되나요?

저는 데이터베이스에 있는 특정 사용자정보를 JWT로 암호화를 해서 토큰을 발급 받은 후 클라이언트에 응답을 해주면 될 거 라고 생각했습니다.(만료기간만 설정) 리프레쉬, 엑세스 토큰개념은 Oauth에서만 생각했었는데 맞는 개념인지 궁금합니다.

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

대부분의 웹사이트는 세션을 사용합니다. 토큰을 사용하실 때는 액세스 토큰은 로컬스토리지에 보관하시면 됩니다. 리프레시토큰은 반드시 httpOnly 쿠키로 하셔야 합니다.

로그아웃을 서버로 보내야하는 이유는 리프레시 토큰을 제거하기 위해서입니다.

0

답변감사합니다.


token 같은경우는 클라이언트에서 어디에 보관하고 있는게 맞을까요?(localStorage 보관하면 안전할까요?)

그리고 로그아웃시에는 그냥 서버에 로그아웃요청을 보내지 않고 localStorage에 해당값을 지우면 어떨까 하는데 괜찮을까요?

웹앱의 경우에는 token방식보다는 session을 써야 안전하다고 하는사람도 있고 요즘에는 token방식으로 거의 로그인을 처리한다고 의견이 다 다른데 어떤게 맞을까요?

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

아뇨 저는 accessToken이랑 refreshToken 둘 다 사용하지 않습니다. 세션 쿠키만 사용하고, 세션 쿠키 만료 시 자동 로그아웃되는 형식입니다. 아무런 토큰을 사용하지 않아서 갱신도 하지 않습니다.

원피스를 찾아서님의 프로필 이미지
원피스를 찾아서

작성한 질문수

질문하기