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

히나타님의 프로필 이미지
히나타

작성한 질문수

Vue로 Nodebird SNS 만들기

백엔드가 자바일때 로그인 유지관련 질문드립니다.

해결된 질문

작성

·

656

0

안녕하세요. 강의 잘 듣고 있습니다.

다름이 아니라 뷰로 처음하는 프로젝트를 자바와 진행해야 하는 상황입니다.

그런데 로그인 관련해서 궁금한게 있습니다.

Nuxt를 사용하고 백엔드가 자바일때 로그인을 유지하는 간략한 프로세스가 궁금합니다.

자바스프링도 리퀘스트를 보낼때 header에 토큰 같은걸 담아서 보내는 건가요?

뷰만 사용할때는 axios 인터셉터를 이용해서 토큰정보를 header에 담아서 보내는건 봤는데

Nuxt를 사용할때도 axios 인터셉터를 이용하나요?

답변 4

1

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

제 강좌는 세션쿠키를 사용하고 다른 토큰은 사용하지 않습니다. 서버에서 발급한 세션쿠키는 프론트 브라우저에 자동으로 저장되고 요청을 보낼 때 자동으로 같이 보내집니다. 다만 브라우저에서 withCredentials와 서버에서 cors 설정만 잘 해주시면 됩니다.

1

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

현재 쿠키를 사용해 로그인하고 있습니다. axios 인터셉터는 로그인과는 전혀 상관이 없고요. 요청 전송 시 백엔드 자바 서버로 쿠키를 전달해주시면 됩니다.

일단 로그인 로직은 백엔드 서버가 담당해야 합니다. 로그인을 할 때 쿠키를 백엔드에서 발급하고, 그것을 다시 브라우저에 공유하도록 설정해야 합니다. 

로그인 이후 SSR을 하는 경우 프론트서버가 백엔드자바서버에서 데이터를 받아오는데 데이터를 받아올 때 쿠키를 보내서 백엔드서버에서 로그인 검증을 받아야 합니다.

0

히나타님의 프로필 이미지
히나타
질문자

아~ 그렇군요. 감사합니다.

0

히나타님의 프로필 이미지
히나타
질문자

답변 감사합니다.

한가지만 더 질문드립니다. 제가 강좌에서 놓친건지 모르겠는데...

로그인 유지할때 프론트쪽에서 nuxtServerInit() 설정으로 유저정보를 가져와서 세팅하는것만 보입니다.

그러면 서버로 리퀘스트를 보낼때 서버에서는 이 사용자가 로그인된 인증사용자인지 어떻게 판단하는거죠?

프론트에서 서버로 리퀘스트를 보낼때마다 세션아이디나 토큰값을 헤더에 싫어서 보내면 서버가 이 토큰정보를 가지고

비교해서 로그인한 사용자로 판단해서 응답을 주는거 아닌가요?

제가 다른 뷰강좌(Nuxt 사용안함) 봤을때는

서버에서 발급한 토큰을 프론트에서 쿠키에 저장 ->

프론트에서 페이지 호출될때마다 저장된 쿠키의 토큰 정보를 다시 state에 저장 ->

서버로 리퀘스트를 보낼때마다 state 의 토큰을 axios 인터셉터로 헤더에 실어서 서버에 리퀘스트 보냄 ->

서버에서 토큰으로 로그인된 사용자 판단 후 응답

이런 방식이었는데요...

혹시 이 강좌에서는 쿠키정보를 백엔드에서 직접 저장하고 가져가고 하는건가요?

현재 기능구현 5-6까지밖에 못보긴 했는데 이런 부분을 제가 놓친건지 아직 못본건지 모르겠네요.

처음 배워서 당장 프로젝트를 해야하니 마음이 급해서 강좌도 다 보기 전에 자꾸 질문드려서 죄송하네요.;;;

히나타님의 프로필 이미지
히나타

작성한 질문수

질문하기