Клиентская сторона JavaScript Google Sign In перестал работать в Safari для Ma c OS X v.10.15.2 - PullRequest
0 голосов
/ 10 января 2020

После обновления до Ma c OS X версии 10.15.2 вход в Google с библиотекой google-api-javascript-client перестал работать для некоторых пользователей в Safari.

Вкладка консоли разработчика и сети Safari не отображается Я действительно не могу рассказать мне много о том, что проблема для этой конкретной c версии Safari.

Пример фрагмента

<script src="https://apis.google.com/js/platform.js" async defer></script>
<meta name="google-signin-client_id" content="REPLACEME.apps.googleusercontent.com">
<div class="g-signin2" data-onsuccess="onSignIn"></div>
<script>
function onSignIn(googleUser) {
  var profile = googleUser.getBasicProfile();
  console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
  console.log('Name: ' + profile.getName());
  console.log('Image URL: ' + profile.getImageUrl());
  console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
}
</script>

Документация: https://developers.google.com/identity/sign-in/web

1 Ответ

0 голосов
/ 10 января 2020

ОБНОВЛЕНИЕ : эта проблема c была решена с выпуском Ma c OS X v10.15.3

Кажется, что с новым обновлением к Ma c OS X v10.15.2 с настройкой Safari Конфиденциальность > Отслеживание: предотвращение межсайтового отслеживания без проверки при входе с клиентской стороны Google JavaScript library не работает.

Несмотря на то, что Отслеживание: предотвращение межсайтового отслеживания опция отмечена в настройках конфиденциальности Safari, не позволяет Google Sign In работать в Safari Private Windows.

См. Проблему github здесь: https://github.com/google/google-api-javascript-client/issues/589

Эта проблема не ограничивается библиотекой google-api-js-client: https://www.reddit.com/r/Safari/comments/eaaanh/safari_1304_on_macos_changes_to_prevent_crosssite/

...