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