From 55b4e43a3da311d284c2e5c48503539cd7eb8b17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20Chalet?= Date: Mon, 6 Mar 2023 14:13:11 +0100 Subject: [PATCH] Add Fitbit to the list of supported providers --- ...ctClientWebIntegrationHandlers.Userinfo.cs | 5 ++++ ...penIddictClientWebIntegrationProviders.xml | 27 +++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs index c1657d1c..3af5c85e 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationHandlers.Userinfo.cs @@ -212,6 +212,11 @@ public static partial class OpenIddictClientWebIntegrationHandlers context.Response = context.Registration.ProviderName switch { + // Fitbit returns a nested "user" object. + Providers.Fitbit => (JsonElement) context.Response["user"] + is { ValueKind: JsonValueKind.Object } element ? + new(element) : throw new InvalidOperationException(SR.FormatID0334("user")), + // StackExchange returns an "items" array containing a single element. Providers.StackExchange => (JsonElement) context.Response["items"] is { ValueKind: JsonValueKind.Array } element && element.GetArrayLength() is 1 ? diff --git a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml index 3e820776..84f731c9 100644 --- a/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml +++ b/src/OpenIddict.Client.WebIntegration/OpenIddictClientWebIntegrationProviders.xml @@ -178,6 +178,33 @@ + + + + + + + + + + + + + + + + +