HttpRequestException: произошла ошибка при получении информации о пользователе Google (запрещено).В Asp.net Core - PullRequest
0 голосов
/ 26 января 2019

Я пытаюсь включить социальный вход в свое основное приложение asp.net. Я успешно интегрировал Facebook и Twitter, и он отлично работает. Но при интеграции с Google, возвращаясь к URL-адресу обратного вызова, он выдает эту страницу ошибки.

Я также использую пользовательский контроллер для процесса

[Route("signin/{provider}")]
public IActionResult SignIn(string provider, string returnUrl = null) => 
        Challenge(new AuthenticationProperties { RedirectUri = returnUrl ?? 
          "/" }, provider);

Приведенный выше код - мой пользовательский вызов контроллера auth.cs.

error page

services.AddAuthentication(options => {
     options.DefaultAuthenticateScheme = 
CookieAuthenticationDefaults.AuthenticationScheme;
     options.DefaultChallengeScheme = 
CookieAuthenticationDefaults.AuthenticationScheme;
     options.DefaultSignInScheme = 
CookieAuthenticationDefaults.AuthenticationScheme;
})
.AddFacebook(options => 
          {
            options.AppId = "";
            options.AppSecret = "";
        })
.AddTwitter(options =>
        {
            options.ConsumerKey = "";
            options.ConsumerSecret = 
"";
})
.AddGoogle(options => {
            options.ClientId = 
"<my client Id>";
            options.ClientSecret = "<my client secret>";
})
.AddCookie(options => {
            options.LoginPath = "/auth/signin";
});

Я ожидал, что после входа в систему с помощью googles Oauth 2. * он будет перенаправлен обратно в мое приложение вместо отображения страницы с ошибкой

Ответы [ 4 ]

0 голосов
/ 23 апреля 2019

Попробуйте это:

.AddGoogle("Google", o=>
{
    o.ClientId = "<insert here>";
    o.ClientSecret = "<insert here>";
    o.UserInformationEndpoint = "https://www.googleapis.com/oauth2/v2/userinfo";
    o.ClaimActions.Clear();
    o.ClaimActions.MapJsonKey(ClaimTypes.NameIdentifier, "id");
    o.ClaimActions.MapJsonKey(ClaimTypes.Name, "name");
    o.ClaimActions.MapJsonKey(ClaimTypes.GivenName, "given_name");
    o.ClaimActions.MapJsonKey(ClaimTypes.Surname, "family_name");
    o.ClaimActions.MapJsonKey("urn:google:profile", "link");
    o.ClaimActions.MapJsonKey(ClaimTypes.Email, "email");
})
0 голосов
/ 28 января 2019

Я столкнулся с этой ошибкой, потому что я не включил службы из консоли разработчика Google

, поэтому, когда я ее включил, все работало нормально.

это былоошибка, с которой я столкнулся, прежде чем включить его.My error page

0 голосов
/ 02 февраля 2019

https://docs.microsoft.com/en-us/aspnet/core/security/authentication/social/google-logins?view=aspnetcore-2.2

Blockquote В январе 2019 года Google начал закрывать вход в Google+, и разработчики должны перейти к новой системе входа в Google к марту. Пакеты ASP.NET Core 2.1 и 2.2 для аутентификации Google будут обновлены в феврале с учетом изменений. Для получения дополнительной информации и временных мер для ASP.NET Core см. Эту проблему GitHub. Это руководство было обновлено новым процессом установки.

0 голосов
/ 26 января 2019

По официальным Быстрый старт , пробовали ли вы с IdentityServerConstants.ExternalCookieAuthenticationScheme;

    .AddGoogle("Google", options =>
    {
        options.SignInScheme = IdentityServerConstants.ExternalCookieAuthenticationScheme;

        options.ClientId = "<insert here>";
        options.ClientSecret = "<insert here>";
    })
...