Ответ 1
Как только у вас есть "/" в конце вашего uri и не имеет того же "/" в конце вашего кода, он его отключит.
Я создал Google OAuth 2.0 ClientID
и secret
в консоли разработчика Google
После этого я протестировал на игровой площадке Google OAuth (https://developers.google.com/oauthplayground).
и зарегистрированный ClientID
и secret
, уже созданный выше, и применяется к меню настроек игровой площадки Google OAuth 2.0.
Некоторые говорят, что после создания ClientID
/secret
им нужно время для тестирования. Поэтому через два дня я попытался протестировать в тех же условиях, но ошибка такая же redirect_uri_mismatch
.
Как я могу это решить?
Как только у вас есть "/" в конце вашего uri и не имеет того же "/" в конце вашего кода, он его отключит.
Консоль site URL
и Authorized redirect URIs
в консоли разработчика должна совпадать.
Эта ошибка возникает, если один URL имеет www
(http://www.example.com
), а другой URL non-www
(http://example.com
).
Другим общим несоответствием URI являются:
http://
в Уполномоченных URI перенаправления и https://
в качестве фактического URL-адреса или наоборотhttp://example.com/
) в URI авторизованного перенаправления и не использовать конечную косую черту (http://example.com
) в качестве фактического URL-адреса или наоборотНиже приведена пошаговая процедура (со снимками экрана) для обновления Авторизованных URI-адресов перенаправления в консоли разработчика Google (для тех, кому было трудно попасть на эту страницу).
Перейдите к https://console.developers.google.com
Выберите проект
- Нажмите на значок меню
- Нажмите
API Manager
меню
- Нажмите
Credentials
меню. И подOAuth 2.0 Client IDs
вы найдете свое имя клиента. В моем случае этоWeb Client 1
. Нажмите на него, и появится всплывающее окно, в котором вы сможете редактировать Авторизованный Javascript Origin и Разрешенные URI-адреса перенаправления.
Вот статья Google на создание проекта и идентификатора клиента.
Это должно быть точное соответствие тому, что вы дали в console.developers.com.
В моем случае я пропустил www в URL.
Например: вы указали http://www.google.com, но в console.developers.com вы дали http://google.com
Он все равно выдает ошибку. Поэтому это должно быть точное совпадение.
URI перенаправления (где возвращается ответ OAuth) должен быть зарегистрирован в консоли Google API, и ошибка указывает на то, что вы не сделали этого или не сделали это правильно.
Перейдите в консоль для своего проекта и посмотрите в Access API. Вы должны увидеть свой идентификатор клиента и секрет там, а также список URI перенаправления. Если нужный URI отсутствует в списке, нажмите "Изменить настройки" и добавьте URI в список.
Я продолжал получать эту же ошибку, пока не понял, что мне нужно поставить "signin-google" в конце настройки перенаправления в консоли Google API, например (NOT http://www.example.org/api):
http://www.example.org/api/signin-google
Убедитесь, что в вашем google-client-api значение учетных данных в этом поле соответствует тому, что вы получили от консоли Google API:
$client->setClientId('xxx.apps.googleusercontent.com');
$client->setClientSecret('xxx');
$client->setRedirectUri('http://example.com/oauth2callback');
$client->setDeveloperKey('xx');
Это может произойти, если значение setRedirectUri отличается от значения, установленного в консоли Google API.
(Magento 1. *) если вы используете расширение Magento для Social Connect, то:
OAuth 2.0
идентификаторы клиентов):http://www.example.com/socialconnect/google/connect/
http://www.example.com
Не забудьте заменить http://www.example.com
на ваш домен