Browse Source

Better redirect for single external auth provider.

pull/385/head
Sebastian 7 years ago
parent
commit
d6ccd7d6e9
  1. 13
      src/Squidex/Areas/IdentityServer/Controllers/Account/AccountController.cs
  2. 11
      src/Squidex/Areas/IdentityServer/Views/Account/Login.cshtml

13
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)
{

11
src/Squidex/Areas/IdentityServer/Views/Account/Login.cshtml

@ -87,15 +87,4 @@ else
<p class="profile-footer">
Already registered? <a asp-controller="Account" asp-action="Login" asp-route-returnurl="@Model.ReturnUrl">Click here to login</a>
</p>
}
@if (!Model.HasPasswordAuth && Model.ExternalProviders.Count == 1)
{
<script>
var redirectButtons = document.getElementsByClassName("redirect-button");
if (redirectButtons.length === 1) {
redirectButtons[0].click();
}
</script>
}
Loading…
Cancel
Save