Подтвердить что ты не робот

Google OAuth на MVC5 ExternalLoginCallback? Error = access_denied

Я установил свой Google OAuth

enter image description here

И я добавил код в Startup.Auth.cs

 app.UseGoogleAuthentication(new GoogleOAuth2AuthenticationOptions()
    {
        // LRC
        ClientId = "xxxxxxxxx",
        ClientSecret = "xxxxx"
        //CallbackPath = new PathString("/signin-google")
    });

Но после того, как я выбрал учетную запись google для входа в систему, она снова перенаправила меня на страницу входа в систему,

Я проверил сеть через Chrome и обнаружил, что доступ был отклонен.

http://www.liferunningclub.com.au/Account/ExternalLoginCallback?error=access_denied

Я не могу понять.

Пожалуйста, помогите. Спасибо.


Обновление Теперь я сделал что-то еще: 1. Я добавил аннотацию ([RequireHttps]) в контроллере учетной записи 2. Я включил SSL для своего проекта. 2. Я обновил URL-адрес и перенаправил URL-адрес в Google Консоли на https

Попробовал войти в систему с Google, после того как я выбрал свою учетную запись Google, она вернула тот же access_denied.

Было бы лучше, если бы ответ Google мог предоставить более подробную информацию.

4b9b3361

Ответ 1

У меня была такая же проблема, используя последний шаблон ASP.Net MVC с выбранными "Индивидуальными учетными записями".

Решение заключалось в том, чтобы включить Google+ API для моего проекта в консоли разработчика Google.

Я нашел свой ответ здесь (прокрутите вниз до "Изменения в Google OAuth 2.0..." ).

Ответ 2

То же самое произошло со мной для провайдера Facebook.

Оказывается, решение было таким простым, как обновление пакета nuget до версии 3.1.

Оказывается, что Facebook сделал "принудительное обновление" своего графического API от версии 2.2 до 2.3 27 марта 2017 года.

Для записи я использую следующее:

В Facebook у меня есть следующие настройки, настроенные для тестового приложения:

введите описание изображения здесь

введите описание изображения здесь

Кроме того, если вы используете шаблон образца, возвращаемый параметр error не используется, что может ввести в заблуждение. Вы должны добавить string error в ExternalLoginCallback

    [AllowAnonymous]
    public async Task<ActionResult> ExternalLoginCallback(string returnUrl, string error)
    {
        if (error != null)
        {
            return View("Error");
        }

Ответ 3

У меня тоже была эта проблема. После того, как я включил API Google+, проблема еще не решена. Оказывается, я не установил "Разрешенные источники JavaScript" в моей консоли Google API. Итак, я установил авторизованное происхождение JavaScript, и проблема решена.

Ответ 4

Скорее всего, это потому, что вы не включили Google + API в консоли разработчика.

Поэтому, когда ваша учетная запись пытается получить подробную информацию об учетной записи Google, access_denied.

Просто зайдите в консоль разработчика и включите Google + API