Я использую этот код ниже пару лет, и еще месяц назад он работал нормально.
MY_CUSTOM_URL объявлен и зарегистрирован в URI авторизованного перенаправления Google.
function initClient() {
gapi.client.init({
apiKey: APKEY,
clientId: CLIENTID,
discoveryDocs: ["https://www.googleapis.com/discovery/v1/apis/calendar/v3/rest"],
scope: "https://www.googleapis.com/auth/calendar",
redirect_uri: MY_CUSTOM_URL,
ux_mode: 'redirect',
}).then(function () {
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
});
}
Когда я пытаюсь вызвать gapi.auth2.getAuthInstance().signIn();
, он просто игнорирует MY_CUSTOM_URL и перенаправляет на корневой домен веб-сайта по умолчанию, даже когда я использую localhost (который также зарегистрирован в Google), и аутентификация не выполняется.
Если я прокомментирую ux_mode, он открывает неожиданно возникнуть и работает правильно, но я не могу использовать всплывающее окно для этой цели.
Спасибо
от Док
Required. Determines where the API server redirects the user after the user completes the authorization flow. The value must exactly match one of the redirect_uri values listed for your project in the API Console. Note that the http or https scheme, case, and trailing slash ('/') must all match.
проверьте redirect_uri в Консоль API, сделайте так, чтобы он соответствовал вашему MY_CUSTOM_URL
вот где вы можете найти это
выберите api => credintals => выберите идентификаторы клиентов OAuth 2.0 => URI авторизованного перенаправления [поле ввода]
пожалуйста, проверьте журнал консоли, сообщите нам, есть ли какие-либо ошибки или предупреждения
Никаких ошибок, он просто перенаправляет на корневой домен веб-сайта по умолчанию (даже когда я локальный, он перенаправляет меня в производственный домен)
спасибо за вашу поддержку, я только что обнаружил проблему, и это действительно смущает ... У меня было специальное перенаправление javascript в верхней части страницы, которое совпало с URL-адресом обратного вызова Google.
Например, спасибо @essam, но я уже трижды проверил URL-адреса.