Command.cs 762 B

12345678910111213141516
  1. using Application.Abstractions.Messaging;
  2. using SharedKernel.Results;
  3. namespace Application.Features.Api.Auth.SocialDisconnect;
  4. /// <summary>
  5. /// 소셜 "연결 끊기(disconnect/unlink)" webhook 처리 (카카오/네이버).
  6. /// provider 콘솔에서 사용자가 연결 해제 시 우리 서버로 호출 → 해당 provider 연동행(MemberOAuthToken) 삭제.
  7. /// 카카오는 3초 내 2xx 를 요구하므로 항상 성공(멱등)으로 처리한다 — 매칭 실패해도 성공.
  8. /// AdminKeyHeader 는 카카오 Authorization 헤더(예 "KakaoAK {ADMIN_KEY}"). 검증 실패 시 IsAuthorized=false.
  9. /// </summary>
  10. public sealed record Command(
  11. string Provider,
  12. string? ProviderUserKey,
  13. string? AdminKeyHeader
  14. ) : ICommand<Result<Response>>;