• nuxt
  • vue
  • node
  • tutorial
  • auth
  • authentication
  • oauth
  • oidc
  • identity

Nuxt 인증을 Logto로 구축하기

Logto SDK를 통합하여 Nuxt로 사용자 인증 흐름을 구축하는 방법을 배워보세요.

Gao
Gao
Founder

시작하기

소개

  • Logto는 아이덴티티 인프라를 구축하기 위한 오픈 소스 Auth0 대안입니다. 사용자 이름, 이메일, 전화번호 및 Google, GitHub와 같은 인기 있는 소셜 로그인 방법을 포함한 다양한 로그인 방법을 지원합니다.
  • Nuxt 웹 개발을 직관적이고 강력하게 만들어주는 오픈 소스 프레임워크입니다.

이 튜토리얼에서는 Logto SDK를 통합하여 Nuxt로 사용자 인증 흐름을 구축하는 방법을 보여줍니다. 튜토리얼에서는 프로그래밍 언어로 TypeScript를 사용합니다.

사전 요구 사항

시작하기 전에 다음을 확인하십시오:

  • Logto 계정. 계정이 없으면 무료로 가입할 수 있습니다.
  • A Nuxt 개발 환경 및 프로젝트.

Logto 애플리케이션 만들기

시작하려면 "전통적인 웹" 유형의 Logto 애플리케이션을 만드십시오. Logto 애플리케이션을 만드는 단계는 다음과 같습니다:

  1. Logto 콘솔에 로그인합니다.
  2. 왼쪽 탐색 모음에서 애플리케이션을 클릭합니다.
  3. 애플리케이션 생성을 클릭합니다.
  4. 열린 페이지에서 "전통적인 웹" 섹션을 찾아 "Nuxt" 카드를 찾습니다.
  5. 구축 시작을 클릭하고 애플리케이션 이름을 입력합니다.
  6. 생성을 클릭합니다.

그런 다음 Nuxt 애플리케이션과 Logto SDK를 통합하는 과정을 안내하는 대화형 가이드를 볼 수 있습니다. 다음 내용은 향후 참고 자료로 사용할 수 있습니다.

Logto SDK 통합하기

설치

선호하는 패키지 관리자를 통해 Logto SDK를 설치하세요:

Logto 모듈 등록하기

Nuxt 구성 파일(nuxt.config.ts)에 Logto 모듈을 추가하세요:

모듈의 최소 구성은 다음과 같습니다:

이 정보들은 민감하기 때문에 환경 변수를 사용하는 것을 권장합니다:

추가 정보는 runtime config를 참조하세요.

로그인 및 로그아웃 구현하기

리디렉션 URI 구성

Logto 콘솔의 애플리케이션 세부 정보 페이지로 전환합니다. 리디렉션 URI http://localhost:3000/callback을 추가합니다.

리디렉션 URI는 인증 후 리디렉션할 위치를 나타내는 OAuth 2.0 개념입니다.

마찬가지로, "로그아웃 후 리디렉션 URI" 섹션에 http://localhost:3000/을 추가합니다.

로그아웃 후 리디렉션 URI는 로그아웃 후 리디렉션할 위치를 나타내는 OAuth 2.0 개념입니다.

그런 다음 "저장"을 클릭하여 변경 사항을 저장합니다.

@logto/nuxt 모듈을 등록할 때 다음을 수행합니다:

  • 로그인(/sign-in), 로그아웃(/sign-out), 그리고 콜백(/callback)을 위한 세 가지 라우트를 추가합니다.
  • 두 가지 composables을 가져옵니다: useLogtoClientuseLogtoUser.

이 라우트는 모듈 옵션에서 logto.pathnames를 통해 구성할 수 있습니다. 예를 들어:

자세한 정보는 @logto/nuxt 패키지의 타입 정의 파일을 확인하세요.

Nuxt 페이지는 초기 로드 후 SPA로 변환되므로, 필요할 때 사용자를 로그인 또는 로그아웃 라우트로 리디렉션해야 합니다.

사용자 정보 표시하기

사용자의 정보를 표시하려면 서버 및 클라이언트 측에서 사용할 수 있는 useLogtoUser() composable을 사용할 수 있습니다:

체크포인트: 애플리케이션 실행하기

이제 애플리케이션을 실행하고 Logto로 로그인/로그아웃을 시도할 수 있습니다:

  1. 브라우저에서 애플리케이션을 열면 "로그인" 버튼이 표시될 것입니다.
  2. "로그인" 버튼을 클릭하면 Logto 로그인 페이지로 리디렉션됩니다.
  3. 로그인한 후 애플리케이션으로 다시 리디렉션되며 사용자 데이터와 "로그아웃" 버튼이 표시될 것입니다.
  4. "로그아웃" 버튼을 클릭하면 Logto 로그아웃 페이지로 리디렉션된 다음 로그인되지 않은 상태로 애플리케이션으로 다시 리디렉션됩니다.

통합 중 문제가 발생하면 Discord 서버에 가입하여 커뮤니티 및 Logto 팀과 채팅하십시오!

추가 읽기 자료