Ошибка инициализации Google Auth API Javascript idpiframe в Chrome
Я использую GSuite, и я кодирую очень простое веб-приложение для использования API Google Auth, и я получаю исключение "idpiframe_initialization_failed".
теперь у меня есть точный HTML, как показано в примере google: https://developers.google.com/api-client-library/javascript/samples/samples
1) я создал проект на Консоль Разработчика Google
2) я настраиваю экран авторизации OAUTH
3) я создал идентификатор клиента, создание ограничений и перенаправление URL
4) я также создал ключ API
5) Наконец, я включил API People, потому что службы discovery не смогли установить параметр discoveryDocs
со всеми этими шагами, когда я вызываю gapi.клиент.init, это вызывает исключение только в chrome, я не могу понять, почему.
код для инициализации API:
gapi.client.init({
apiKey: 'MY_API_KEY',
discoveryDocs: ["https://people.googleapis.com/$discovery/rest?version=v1"],
clientId: 'MY_CLIENT_ID.apps.googleusercontent.com',
scope: 'profile'
}).then(function (response) {
// Listen for sign-in state changes.
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// Handle the initial sign-in state.
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
},function(reason){
console.log('onerror');
console.log(reason);
// Listen for sign-in state changes.
gapi.auth2.getAuthInstance().isSignedIn.listen(updateSigninStatus);
// Handle the initial sign-in state.
updateSigninStatus(gapi.auth2.getAuthInstance().isSignedIn.get());
код запуск блока ошибок, и сообщение:
details: "Failed to read the 'localStorage' property from 'Window': Access is denied for this document."
error:"idpiframe_initialization_failed"
есть идеи, почему я вхожу в эту ошибку?
спасибо!
2 ответов
Я столкнулся с такой же проблемой. Потратив некоторое время, нашел причину. Эта ошибка вызвана тем, что в настройках chrome включена опция блокировать сторонние файлы cookie и данные сайта.
Это можно решить, отключив эту опцию: "Чтобы найти настройки, Откройте настройки Chrome, введите "Настройки содержимого" в поле поиска, нажмите кнопку "Настройки содержимого" и просмотрите четвертый элемент в разделе "Cookies"." Снимите флажок " блокировать сторонние файлы cookie и сайт данные."
надеюсь, это поможет вам в решении Вашего вопроса.
в моем случае мне просто пришлось немного подождать, пока Google примет во внимание происхождение. Я не могу сказать точно, сколько времени это заняло. Я ждал ~30 минут. Затем я пошел спать и на следующее утро.
Edit: Ooops я только что понял, что использую http://
, а не https://
. Вот в чем была проблема.