Ядро Asp.net и сервер идентификации: внешние логины не работают - PullRequest
0 голосов
/ 25 октября 2018

Я установил приложение ядра (2.1) asp.net, используя удостоверение asp.net, и подключил Identity Server 4 в качестве промежуточного программного обеспечения для аутентификации.Это хорошо работает для локальных учетных записей, но сейчас я пытаюсь включить сторонних поставщиков логина, начиная с Google.Поэтому я добавил следующее к своему методу ConfigureServices:

services.AddAuthentication()
                .AddGoogle("Google", options =>
                {
                    options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;
                    options.ClientId = "numbershere.apps.googleusercontent.com";
                    options.ClientSecret = "my-secret";
                });

И добавил леса проекта в проект, и появилась кнопка входа в Google.Если я щелкну по нему, я перенаправлюсь в Google, войду в систему и получу экран подтверждения, прежде чем вернуться в свое приложение.В этот момент выполняется OnGetCallbackAsync из моего ExternalLoginModel, который содержит вызов:

var info = await _signInManager.GetExternalLoginInfoAsync();

Однако информация всегда пуста после этого вызова, и поэтому пользователь просто перенаправляется обратно к логинустраница:

public async Task<IActionResult> OnGetCallbackAsync(string returnUrl = null, string remoteError = null)
        {
            returnUrl = returnUrl ?? Url.Content("~/");
            if (remoteError != null)
            {
                ErrorMessage = $"Error from external provider: {remoteError}";
                return RedirectToPage("./Login", new {ReturnUrl = returnUrl });
            }
            var info = await _signInManager.GetExternalLoginInfoAsync();
            if (info == null)
            {
                ErrorMessage = "Error loading external login information.";
                return RedirectToPage("./Login", new { ReturnUrl = returnUrl });
            }
}

Я читал об онлайн и даже следовал пунктам быстрого запуска Identity Server , но не вижу, что пропустил.

Кто-нибудь может посоветовать, что я не сделал / не настроил для этой работы?

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...