From c9c603fd226acc46b20d058b364738119be50d56 Mon Sep 17 00:00:00 2001 From: Merijn Geurts Date: Tue, 31 Jan 2023 17:50:43 +0100 Subject: [PATCH] Update UserInfoController for overriding --- .../Controllers/UserInfoController.cs | 18 ++++++++++++++---- 1 file changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs index 418b361bda..095b692588 100644 --- a/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs +++ b/modules/openiddict/src/Volo.Abp.OpenIddict.AspNetCore/Volo/Abp/OpenIddict/Controllers/UserInfoController.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Authentication; @@ -21,8 +21,8 @@ public class UserInfoController : AbpOpenIdDictControllerBase [Produces("application/json")] public virtual async Task Userinfo() { - var user = await UserManager.GetUserAsync(User); - if (user == null) + var claims = await GetUserInfoClaims(); + if(claims == null) { return Challenge( authenticationSchemes: OpenIddictServerAspNetCoreDefaults.AuthenticationScheme, @@ -32,6 +32,16 @@ public class UserInfoController : AbpOpenIdDictControllerBase [OpenIddictServerAspNetCoreConstants.Properties.ErrorDescription] = "The specified access token is bound to an account that no longer exists." })); } + return Ok(claims); + } + + protected virtual async Task> GetUserInfoClaims() + { + var user = await UserManager.GetUserAsync(User); + if (user == null) + { + return null; + } var claims = new Dictionary(StringComparer.Ordinal) { @@ -67,6 +77,6 @@ public class UserInfoController : AbpOpenIdDictControllerBase // Note: the complete list of standard claims supported by the OpenID Connect specification // can be found here: http://openid.net/specs/openid-connect-core-1_0.html#StandardClaims - return Ok(claims); + return claims; } }