실제 사용 사례: webhook 으로 인증 시스템 확장하기
환영 이메일 보내기, 데이터를 데이터베이스에 동기화하기, 사용자 역할/권한을 실시간으로 업데이트하기, 타사 분석 도구와 통합하기 등을 포함하여 Logto webhook 을 사용한 인증 및 권한 부여의 실제 사례를 발견하세요.
Logto webhook 을 사용하면 사용자 등록, 로그인, 비밀번호 재설정과 같은 특정 이벤트에 대한 실시간 업데이트를 지속적으로 폴링하지 않고도 수신할 수 있습니다. 이벤트가 트리거되면 Logto 는 이벤트에 대한 정보를 포함하는 HTTP 요청을 지정된 엔드포인트 URL 로 보냅니다. 애플리케이션은 요청을 수신하고 데이터에 따라 이메일을 보내거나 데이터베이스를 업데이트하는 등의 맞춤형 작업을 수행할 수 있습니다.
Logto 콘솔에서는 직접 찾을 수 없는 기능들이 있지만, webhook 을 사용하여 사용자 행동을 모니터링하여 이를 달성할 수 있는지 고려할 수 있습니다.
Logto webhook 의 사용 시나리오
Webhook 은 인증 시스템에 무한한 가능성을 제공합니다. 여기에 제가 예를 들고자 하는 몇 가지 실제 사용 사례가 있습니다:
1. 이메일 또는 알림 보내기
“Logto Email 을 사용하여 로그인 링크가 포함된 맞춤형 환영 이메일을 사용자에게 보낼 수 있나요? 우리는 인증 코드 전용 로그인만 사용하며, 비밀번호는 없습니다.”
Logto 의 이메일 서비스는 현재 직접적인 환영 이메일을 지원하지 않지만, 이것은 webhook 의 고전적인 시나리오입니다. User.Created
이벤트를 사용하고, 엔드포인트가 사용자 등록 정보를 수신하면 즉시 사용자의 이메일로 환영 이메일을 보냅니다.
유사하게, 역할 업데이트 후 사용자에게 알림을 보낼 수 있고, 새로운 멤버에 대해 관리자에게 알릴 수 있으며, 팀을 업데이트하도록 Slack 또는 Discord 에 잔디 메시지를 푸시할 수 있습니다.
2. 데이터 동기화
“관리 콘솔에서 사용자를 삭제하면 이를 다른 시스템과 어떻게 동기화 합니까?”
User.Deleted
이벤트를 사용하여 삭제된 사용자의 상태 변경을 가져와 이를 다른 시스템에 동기화합니다. 사용자의 로그인 세션을 즉시 지울 수도 있으며, 이는 크로스 애플리케이션 사용자 관리에 도움이 됩니다.
“내 Logto 테넌트 아래 여러 애플리케이션이 있습니다. 사용자 생성을 감지하여 특정 애플리케이션에서 처리되도록 webhook 이 필요합니다.”
PostRegister
이벤트를 사용하고, Payload 에는 AppId
정보가 포함되어 있어 여러 앱 서비스의 개인화된 경험 설계에 도움이 됩니다.
3. 추가 API 호출 수행
“사용자의 권한을 변경하면 로그아웃하고 다시 로그인해야 업데이트가 적용됩니다. 자동으로 이 작업 이 수행될 수 있나요?”
관리자가 사용자의 역할을 변경하거나 새로운 권한을 추가하면 기본적으로 사용자가 다시 로그인하거나 액세스 토큰 업데이트에 동의해야 합니다. 권한 변경이 즉시 효과를 발휘하게 하려면 User.Data.Updated
webhook 을 사용하여 알림을 받고, 재동의를 활성화하거나 새로운 액세스 토큰을 발행하도록 합니다.
추가적으로, 짧은 액세스 토큰 만료 시간을 사용하거나 정기적으로 Management API 엔드포인트를 호출하여 사용자 역할 및 권한을 받을 수 있지만, 오직 webhook 을 통해서만 가장 신속한 업데이트를 받을 수 있습니다.
“새로운 사용자를 내 데이터베이스에 추가하고, ‘조직 설정’ 페이지로 보내고, 후속적으로는 조직 초대만 허용하고 싶습니다. Logto 가 이를 지원합니까?”
먼저 데이터 동기화가 필요하며, 신규 사용자를 데이터베이스에 추가하기 위해 Post.Register
webhook 을 사용합니다. 그런 다음, Logto Management API 를 사용하여 조직 설정 및 초대에 대한 프롬프트 페이지를 설계하세요.
4. 데이터 분석
“Logto 를 Google Analytics, Umami, Plausible 등의 분석 도구에 연결하여 사용자 로그인을 추적할 수 있나요?”
사용자 로그인 또는 권한 부여와 관련된 데이터를 분석해야 하는 경우, Logto 의 webhook 기능을 사용할 수 있습니다. Logto 에서 보내는 webhook 을 수신하고 데이터를 타사 분석 도구와 통합할 수 있습니다.
webhook 필요 여부 확인하기
Step 1: 필요한 Webhook 이벤트가 있는지 확인하기
Webhook 은 계정 수준과 조직 수준 두 가지로 나뉘며, 모든 이벤트는 아래에 표시됩니다:
분할 시나리오를 원활하게 하고 일치하는 데이터를 얻기 위해 이벤트가 세부적으로 나뉘어져 있지만, 여러 이벤트에 대한 정보가 동시에 필요한 경우 하나의 Webhook 에 대해 여러 이벤트를 선택할 수 있습니다.
참고: “사용자 상호작용” 유형의 이벤트는 UI 내에서의 사용자 행동을 캡처하며, 관리자가 시작한 변경 사항은 제외됩니다. “사용자” 유형의 이벤트는 관리자와 최종 사용자가 수행하는 모든 사용자 행동을 포함합니다. 예를 들어, PostRegister
이벤트는 로그인 경험에서의 사용자 등록을 가리키며, User.Created
는 UI 인터페이스에서 사용자에 의해 등록된 모든 신규 사용자와 관리자가 추가한 사용자를 포함합니다.
Step 2: 요청 페이로드에 필요한 정보가 포함되어 있는지 확인하기
서로 다른 이벤트는 서로 다른 정보를 갖고 있으며, 존재하는 정보가 사용 사례 요구를 직접 충족할 수 있는지 확인할 수 있습니다. 예를 들어, id
, username
, primary email
, profile
, customData
, identities
, lastSignInAt
, createdAt
, applicationId
, isSuspended
, OrganizationId
, OrganizationRoleId
, OrganizationScopeId
등이 있습니다. 자세한 내용은 Webhook 요청을 참조하세요. 그렇지 않은 경우, Management API 를 사용하여 관련 사용자 정보를 계속 얻을 수 있습니다.
Step 3: Management API 와 결합하여 고급 기능 확장하기
Logto Management API를 사용하여 추가 관리 및 기능 구성을 구현할 수도 있습니다.
결론
Logto webhook 이벤트는 다양한 시나리오를 포괄할 뿐만 아니라 서명 키 및 사용자 지정 헤더를 확인하여 보안 전송을 보장합니다. 또한, Logto webhook 대시보드를 통해 지난 24시간 동안 각 webhook 의 전송을 모니터링할 수 있습니다.