namespace Application.Abstractions.YouTube; /// /// Google OAuth 2.0 Authorization Code Flow /// ID Token 검증(기존) 외에 Access Token 획득/갱신을 위한 서비스 /// public interface IGoogleOAuthService { /// Authorization URL 생성 (프론트엔드 리다이렉트용) string GetAuthorizationUrl(string state, string redirectUri, string[] scopes); /// Authorization Code → Access Token + Refresh Token 교환 Task ExchangeCodeAsync(string code, string redirectUri, string clientId, string clientSecret, CancellationToken ct); /// Refresh Token으로 Access Token 갱신 Task RefreshTokenAsync(string refreshToken, CancellationToken ct); /// /// OAuth 토큰 revoke (앱 접근 권한 해제). /// 성공 시 true, 네트워크/Google 5xx 등으로 실패 시 false. /// access_token 또는 refresh_token 어느 쪽으로 호출해도 둘 다 무효화됨. /// Task RevokeTokenAsync(string token, CancellationToken ct); }