🐛 Fix discord oidc since it has no discovery endpoint

This commit is contained in:
LittleSheep 2025-06-19 01:56:16 +08:00
parent ca2d37eb39
commit e40514e440
2 changed files with 13 additions and 2 deletions

View File

@ -33,6 +33,17 @@ public class DiscordOidcService(
return $"https://discord.com/api/oauth2/authorize?{queryString}"; return $"https://discord.com/api/oauth2/authorize?{queryString}";
} }
protected override async Task<OidcDiscoveryDocument?> GetDiscoveryDocumentAsync()
{
return new OidcDiscoveryDocument
{
AuthorizationEndpoint = "https://discord.com/oauth2/authorize",
TokenEndpoint = "https://discord.com/api/oauth2/token",
UserinfoEndpoint = "https://discord.com/api/users/@me",
JwksUri = null
};
}
public override async Task<OidcUserInfo> ProcessCallbackAsync(OidcCallbackData callbackData) public override async Task<OidcUserInfo> ProcessCallbackAsync(OidcCallbackData callbackData)
{ {
var tokenResponse = await ExchangeCodeForTokensAsync(callbackData.Code); var tokenResponse = await ExchangeCodeForTokensAsync(callbackData.Code);

View File

@ -65,7 +65,7 @@ public abstract class OidcService(
/// <summary> /// <summary>
/// Retrieves the OpenID Connect discovery document /// Retrieves the OpenID Connect discovery document
/// </summary> /// </summary>
protected async Task<OidcDiscoveryDocument?> GetDiscoveryDocumentAsync() protected virtual async Task<OidcDiscoveryDocument?> GetDiscoveryDocumentAsync()
{ {
// Construct a cache key unique to the current provider: // Construct a cache key unique to the current provider:
var cacheKey = $"oidc-discovery:{ProviderName}"; var cacheKey = $"oidc-discovery:{ProviderName}";