한국어
몇 분 안에 Logto 를 위한 Node.js 기반 프레임워크 SDK 제작하기
`@logto/node`를 사용하여 Logto 에 맞춘 사용자 정의 SDK 를 만드는 방법을 배워보세요.
이전 기사에서는 몇 분 만에 Logto 를 위한 웹 SDK 를 제작했습니다. 이제, JavaScript 개발자들에게 인기가 많은 또 다른 플랫폼인 Node.js 에 초점을 맞춰보겠습니다.
이 가이드에서는 @logto/node
를 사용하여 Logto 를 위한 간단한 Express SDK 를 만드는 단계에 대해 설명합니다. 이 SDK 는 로그인 흐름을 구현하며, 다른 Node.js 기반 플랫폼(Koa, Next.js, NestJS 등)을 위해 SDK 를 만들기 위해 동일한 단계를 따를 수 있습니다.
로그인 흐름
시작하기 전에, Logto 에서의 로그인 흐름을 검토해 봅시다. 로그인 흐름은 다음 단계로 이루어집니다:
- Logto 로 리디렉션: 사용자가 Logto 로그인 페이지로 리디렉션됩니다.
- 인증: 사용자가 크리덴셜을 입력하고 Logto 와 함께 인증합니다.
- 앱으로 다시 리디렉션: 인증에 성공하면 사용자는 인증 코드와 함께 앱으로 다시 리디렉션됩니다.
- 코드 교환: 앱이 인증 코드를 토큰으로 교환하고 이 토큰을 인증 상태로 저장합니다.
@logto/node
간단 소개
@logto/browser
와 유사하게, @logto/node
패키지는 Logto 의 주요 기능을 제공하는 LogtoClient
클래스를 노출합니다. 여기에 로그인 흐름을 위한 메소드도 포함되어 있습니다:
signIn()
: OIDC 인증 URL 을 생성하고 그 곳으로 리디렉션합니다.handleSignInCallback()
: 콜백 URL 을 확인하고 분석하여 인증 코드를 추출한 후, 토큰 엔드포인트를 호출하여 코드와 토큰을 교환합니다.getContext()
: 세션 쿠키를 기반으로 현재 요청의 컨텍스트를 가져오며, 인증 상태와 사용자 정보를 포함합니다.
Express SDK 제작
이 SDK 에서는 두 개의 라우트 핸들러(/sign-in
및 /sign-in-callback
)와 withLogto
미들웨어를 제공합니다:
/sign-in
: OIDC 인증 URL 로 리디렉션하는 응답과 함께 로그인 흐름을 시작하는 라우트 핸들러입니다./sign-in-callback
: 콜백 URL 을 처리하고, 인증 코드를 토큰과 교환하여 저장하고, 로그인 흐름을 완료하는 라우트 핸들러입니다.withLogto
미들웨어: 현재 요청의 컨텍스트를 가져오기 위해getContext()
를 호출하는 미들웨어로, 인증 상태와 사용자 정보를 포함합니다.
SDK 를 사용하려면, 미들웨어를 Express 앱에 추가하여 라우트를 보호하고, 라우트 핸들러를 사용하여 로그인 흐름을 트리거하고 콜백을 처리하세요.
1단계: 패키지 설치
먼저, npm 또는 다른 패키지 관리자를 사용하여 @logto/node
패키지를 설치하세요: