diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs index fe50ffe4..44679c25 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs @@ -265,6 +265,10 @@ public static partial class OpenIddictClientWebIntegrationHandlers Providers.Patreon => new(context.Response["data"]?["attributes"]?.GetNamedParameters() ?? throw new InvalidOperationException(SR.FormatID0334("data/attributes"))), + // ServiceChannel returns a nested "UserProfile" object. + Providers.ServiceChannel => new(context.Response["UserProfile"]?.GetNamedParameters() ?? + throw new InvalidOperationException(SR.FormatID0334("UserProfile"))), + // StackExchange returns an "items" array containing a single element. Providers.StackExchange => new(context.Response["items"]?[0]?.GetNamedParameters() ?? throw new InvalidOperationException(SR.FormatID0334("items/0"))), diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml index 30f057a5..cab3b405 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml @@ -533,6 +533,38 @@ Description="The value used as the 'duration' parameter (can be set to 'permanent' to retrieve a refresh token)" /> + + + + + + + + + + + + + + + + + + + + + +