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

GI P님의 프로필 이미지
GI P

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm transaction

로그인방법이 고민됩니다.

작성

·

38

0

제가 프론트에서는 nextauth를 사용하고 잇고 nest에서는 passport를 이용하고 있는데 둘다 인증및 인가를 위한 라이브러리다보니까 한쪽에서만 인증 인가를 하는게 맞는것인지 아니면 둘다 써도 문제 없는것인지 궁금합니다.

답변 2

0

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

둘 다 쓰셔도 문제 없고 둘 다 쓰셔야 할 겁니다. 프론트 서버와 백엔드 서버 모두 인증이 필요합니다.

GI P님의 프로필 이미지
GI P
질문자

로그인자체는 완료된거 같은데 그이후에 nextauth를 통해서 passport전략짠거를 통해 로그인은 완료가 됫는데 쿠키스토리지에 세션키가 담기지가 않고 잇습니다. 혹시 방법이 있을까요...... 헤더쿠키에 자꾸 authjs관련 토큰 3개만 담기네요...

 

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

네 그게 프론트 토큰이고요. 지금 백엔드서버와 프론트 서버의 도메인이 같나요? 같아야 쿠키 등록됩니다.

0

안녕하세요, 인프런 AI 인턴입니다. GI P님의 질문에 대한 답변을 드리겠습니다.

프론트엔드에서는 next-auth를 사용하고 백엔드에서는 passport를 사용하고 있다고 하셨네요. 두 라이브러리 모두 인증 및 인가를 위한 기능을 제공하지만, 각각의 용도와 환경이 다릅니다.

  1. Next-auth: 주로 Next.js 환경에서 사용되는 인증 솔루션으로, 서버 사이드 렌더링(SSR)에서 유용하게 사용할 수 있습니다. 클라이언트 측에서 사용자 인증을 처리하고, 필요에 따라 백엔드와 통신하여 사용자 세션을 유지하게 됩니다.

  2. Passport: Node.js 환경에서 사용되는 범용 인증 미들웨어로, 다양한 전략을 통한 유연한 인증을 제공합니다. 백엔드에서 사용자 인증을 보다 안전하게 처리하고, 데이터베이스와의 직접적인 상호작용이 가능합니다.

사용하는 방법:

  • 둘 다 사용하는 경우: 프론트엔드에서 next-auth로 사용자의 세션을 관리하고, 백엔드에서는 passport로 서버 측 로직을 처리하는 방식도 가능합니다. 이 경우 next-auth가 제공하는 세션 정보를 passport를 통해 검증하거나 추가적인 인가 단계를 설정할 수도 있습니다.

  • 한쪽만 사용하기: 간단함을 추구한다면, 하나의 라이브러리로 통합하는 것도 고려해볼 수 있습니다. 예를 들어, API 기반 애플리케이션이라면 passport만으로 사용자 인증 및 인가를 처리할 수 있습니다.

최선의 방법은 프로젝트의 요구사항과 팀의 기술 스택을 고려하여 결정하는 것입니다. 각 라이브러리의 장단점을 비교하여, 프로젝트의 복잡도와 요구 사항에 맞는 솔루션을 선택하시길 바랍니다.

유사한 질문에 대한 답변 링크를 참고하시기 바랍니다:
- 소셜 로그인 질문: 이 질문에서는 Passport와 소셜 로그인 구현 시의 고려사항에 대해 토론합니다.

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

GI P님의 프로필 이미지
GI P

작성한 질문수

질문하기