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

femaster1님의 프로필 이미지

작성한 질문수

Next + React Query로 SNS 서비스 만들기

넥스트 프론트 서버에 로그인이 필요한 이유가 궁금합니다!

24.10.02 11:24 작성

·

60

0

안녕하세요
CSR 경험만 있다보니, 프론트 서버에 로그인한다는 개념이 뭔가 와닿지가 않아서요
백엔드 서버에 쿠키로 인증이 되는데, 왜 프론트 서버에 로그인하는게 필요할까요?

클라이언트 사이드만 있을 때랑 뭔가 다른 느낌이네요..ㅠ

답변 2

0

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

2024. 10. 02. 11:39

프론트 서버에 로그인하지 않으면 로그인 후에 보여줄 페이지와 로그인 전에 보여줄 페이지를 구분할 수가 없습니다.

femaster1님의 프로필 이미지
femaster1
질문자

2024. 10. 02. 12:20

오 감사합니다 🙂 해당 방법이 넥스트에서는 일반적으로 사용되는 방법이겠죠?

혹시 로그인을 프론트엔드 서버와 백엔드 서버 둘 다 하는게 아니라 쿠키를 공유하거나하는 방식도 가능할까요?

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

2024. 10. 02. 12:39

쿠키 공유가 제일 좋긴 한데 현재 next-auth와 express는 공유가 좀 어렵습니다. jwt 토큰 인증이라면 공유 가능합니다.

femaster1님의 프로필 이미지
femaster1
질문자

2024. 10. 02. 16:27

오..! 감사합니다!

혹시 Next auth 와 express 는 공유가 왜 어려운 걸까요?

 

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

2024. 10. 02. 17:57

next auth는 jwe 토큰을 쓰는데 express session은 jwt를 써서 어렵습니다 ㅠㅠ

0

인프런 AI 인턴님의 프로필 이미지

2024. 10. 02. 11:26

안녕하세요, 인프런 AI 인턴입니다. femaster1님.

CSR(Client Side Rendering)과 SSR(Server Side Rendering)의 차이점, 특히 Next.js와 관련된 로그인 개념에 대해 궁금해하시는 것 같습니다.

Next.js는 백엔드 서버와 프론트엔드 서버가 동작하는 방식이 조금 다릅니다. 보통 CSR에서는 클라이언트가 직접 백엔드 서버에 요청을 보내고 쿠키로 인증을 처리합니다. 그러나 Next.js와 같은 SSR 프레임워크에서는 서버가 HTML을 생성해서 클라이언트에게 보내야 합니다. 클라이언트가 요청을 보낼 때 서버는 이 요청을 인증하고 적절한 데이터를 돌려주기 위해 쿠키를 확인합니다. 이 과정에서 cookie-parserexpress-session과 같은 미들웨어가 필요합니다.

아래 URL들은 유사한 질문에 대해 답변한 게시물입니다. 확인해 보시면 도움이 될 것입니다.

  1. 질문: 세션과 쿠키에 대한 질문 - 프론트 서버의 쿠키 설정을 뺄 때 발생하는 문제에 대한 답변입니다.
  2. 질문: Next.js의 동작과정에 대해서 - Next.js의 SSR과 CSR 동작 방식에 대한 설명입니다.

요약:
- 프론트 서버에 쿠키 관련 미들웨어를 설정하는 이유는, 클라이언트가 백엔드 서버에 인증된 요청을 보낼 때 이를 확인하고 처리할 수 있도록 하기 위함입니다.
- SSR 환경에서는 초기 렌더링 시, 서버가 HTML을 생성하기 위해 클라이언트의 인증 정보를 필요로 하므로, 프론트 서버에도 이러한 미들웨어가 필요합니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.