From d6ccd7d6e9d38f2234e44ceff8022cb950202e41 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Fri, 28 Jun 2019 22:28:30 +0200 Subject: [PATCH] Better redirect for single external auth provider. --- .../Controllers/Account/AccountController.cs | 13 ++++++++++++- .../Areas/IdentityServer/Views/Account/Login.cshtml | 11 ----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs b/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs index 0ced5abe7..7b2553554 100644 --- a/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs +++ b/src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs @@ -198,6 +198,17 @@ namespace Squidex.Areas.IdentityServer.Controllers.Account var externalProviders = await signInManager.GetExternalProvidersAsync(); + if (externalProviders.Count == 1 && !allowPasswordAuth) + { + var provider = externalProviders[0].AuthenticationScheme; + + var properties = + signInManager.ConfigureExternalAuthenticationProperties(provider, + Url.Action(nameof(ExternalCallback), new { ReturnUrl = returnUrl })); + + return Challenge(properties, provider); + } + var vm = new LoginVM { ExternalProviders = externalProviders, @@ -242,7 +253,7 @@ namespace Squidex.Areas.IdentityServer.Controllers.Account var isLoggedIn = result.Succeeded; - UserWithClaims user = null; + UserWithClaims user; if (isLoggedIn) { diff --git a/src/Squidex/Areas/IdentityServer/Views/Account/Login.cshtml b/src/Squidex/Areas/IdentityServer/Views/Account/Login.cshtml index dd23d6a95..855d81fdd 100644 --- a/src/Squidex/Areas/IdentityServer/Views/Account/Login.cshtml +++ b/src/Squidex/Areas/IdentityServer/Views/Account/Login.cshtml @@ -87,15 +87,4 @@ else -} - -@if (!Model.HasPasswordAuth && Model.ExternalProviders.Count == 1) -{ - } \ No newline at end of file