diff --git a/DysonNetwork.Sphere/Auth/OpenId/AfdianOidcService.cs b/DysonNetwork.Sphere/Auth/OpenId/AfdianOidcService.cs index 7f2a76f..1e126fa 100644 --- a/DysonNetwork.Sphere/Auth/OpenId/AfdianOidcService.cs +++ b/DysonNetwork.Sphere/Auth/OpenId/AfdianOidcService.cs @@ -46,49 +46,6 @@ public class AfdianOidcService( } public override async Task ProcessCallbackAsync(OidcCallbackData callbackData) - { - var tokenResponse = await ExchangeCodeForTokensAsync(callbackData.Code); - if (tokenResponse?.AccessToken == null) - { - throw new InvalidOperationException("Failed to obtain access token from Afdian"); - } - - var userInfo = await GetUserInfoAsync(tokenResponse.AccessToken); - - userInfo.AccessToken = tokenResponse.AccessToken; - userInfo.RefreshToken = tokenResponse.RefreshToken; - - return userInfo; - } - - protected override async Task ExchangeCodeForTokensAsync( - string code, - string? codeVerifier = null - ) - { - var config = GetProviderConfig(); - var client = HttpClientFactory.CreateClient(); - - var content = new FormUrlEncodedContent(new Dictionary - { - { "client_id", config.ClientId }, - { "client_secret", config.ClientSecret }, - { "grant_type", "authorization_code" }, - { "code", code }, - { "redirect_uri", config.RedirectUri }, - }); - - var response = await client.PostAsync("https://afdian.com/api/oauth2/access_token", content); - response.EnsureSuccessStatusCode(); - - return new OidcTokenResponse() - { - AccessToken = code, - ExpiresIn = 3600 - }; - } - - private async Task GetUserInfoAsync(string accessToken) { try { @@ -98,7 +55,7 @@ public class AfdianOidcService( { "client_id", config.ClientId }, { "client_secret", config.ClientSecret }, { "grant_type", "authorization_code" }, - { "code", accessToken }, + { "code", callbackData.Code }, { "redirect_uri", config.RedirectUri }, });