Ошибка "redirect_uri_mismatch", автоматически добавляется с "www" - Google OAuth2 - PullRequest
0 голосов
/ 12 декабря 2018

Я установил redirect_uri с общедоступным доменным именем (не localhost).И это работает для большинства людей, включая меня, но показывает ошибку "redirect_uri_mismatch" для моего двоюродного брата.

Это ошибка.

Ошибка: redirect_uri_mismatch

URI перенаправления в запросе http://www.domainname.com/src/oauth2callback.php, не соответствует тем, которые разрешены для клиента OAuth.Чтобы обновить авторизованные URI перенаправления, посетите: https://console.developers.google.com/apis/credentials/oauthclient/123456-9nq218mchl4n9dj474v0821g7umko6fp.apps.googleusercontent.com?project=123456

Подробнее о запросе

Это все, что мы знаем.

Поскольку я не смог повторить проблемусо своей стороны,

  1. Я попросил его очистить кеш от «Все время».
  2. Перезапустил систему и открыл один сеанс браузера в режиме инкогнито и попытался войти в систему.
  3. Пробовал с другим устройством, как с телефона с другим провайдером.

Ни один из шагов не решил проблему.Это показывает непоследовательное поведение нескольких успешных попыток.

Какие еще причины могут быть причиной ошибки "redirect_uri_mismatch"?Это проблема в моем коде или от Google.Я использую "php" для этого приложения.

Спасибо.

Обновление: получил причину ошибки

Я создал перенаправлениеURL-адрес как этот.

$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/src/oauth2callback.php');

И я зарегистрировал URL-адрес перенаправления как

http://domainname.com/src/oauth2callback.php

Но когда мой двоюродный брат нажимает на кнопку входа в систему, URL-адрес перенаправления был создан с "www" добавлено перед именем домена, например, http://www.domainname.com/src/oauth2callback.php.

Он использовал версию Firefox 63.0.После обновления Firefox это было 64.0, что совпадает с моим.Несмотря на то, что URL перенаправления был добавлен с "www".Однако добавление еще одного URL с "www" в качестве http://www.domainname.com/src/oauth2callback.php решило проблему.

Могу ли я узнать фактическую причину такого автоматического добавления, которое не происходит в моем браузере?

Спасибо.

1 Ответ

0 голосов
/ 13 декабря 2018

Нашел причину.Тот же код

$client->setRedirectUri('http://' . $_SERVER['HTTP_HOST'] . '/src/oauth2callback.php');

добавлял "www" перед доменным именем для моего двоюродного брата,

http://www.domainname.com/src/oauth2callback.php

и то же самое не добавлял "www" для меня.

http://domainname.com/src/oauth2callback.php

И URL перенаправления был зарегистрирован без "www".Теперь я зарегистрировал оба URL с и без "www", и теперь он работает нормально.

...