Как остановить кнопку входа в Google+ от появления сообщения "Добро пожаловать, вы уже подключились к этому приложению через Google+, чтобы войти..."

Я добавляю кнопку входа в Google+ на свой сайт, используя поток на стороне сервера. Вот как я отображаю кнопку входа в систему:

<script type="text/javascript">
    (function () {
        var po = document.createElement('script');
        po.type = 'text/javascript';
        po.async = true;
        po.src = 'https://plus.google.com/js/client:plusone.js?onload=renderGPlus';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(po, s);
    })();
</script>

<script type="text/javascript">
    function renderGPlus() {
        gapi.signin.render('customGPlusBtn', {
            'callback': 'gPlusSignInCallback',
            'clientid': '<my_client_id>',
            'redirecturi': 'postmessage',
            'accesstype': 'offline',
            'cookiepolicy': 'single_host_origin',
            'requestvisibleactions': 'http://schemas.google.com/BuyActivity',
            'scope': 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email'
        });
    }
</script>

Когда кнопка загружена, она немедленно проверяет, авторизовал ли пользователь мое приложение (немедленный режим). Если пользователь ранее авторизовал мое приложение, в нижней части страницы появится панель уведомлений с сообщением "Добро пожаловать, вы уже подключились к этому приложению через Google+, войдите как.....".

Есть ли способ остановить появление этого сообщения?

4 ответа

Решение

Во-первых, сообщение появляется только при первом входе пользователя в систему, как он распознается Google для определенного сеанса браузера. Другими словами, пользователь увидит сообщение только в том случае, если он закрыл свои окна браузера и начал новый сеанс браузера.

Вы должны авторизовать пользователя в любое время, когда вы видите, что результат авторизации успешно вернул и обновил пользователя до авторизованного состояния. Таким образом, пользователь автоматически входит в систему всякий раз, когда появляется это сообщение.

Поскольку появившееся сообщение информирует ваших пользователей о том, что они автоматически вошли в систему, вам, вероятно, не следует подавлять это сообщение, если вы не делаете это намеренно для пользователя, сеансом которого вы явно управляете.

Однако, если вы реализовали явный выход и управляете состоянием входа пользователя, следующее изменение кода в синхронном включении plusone.js будет подавлять всплывающее сообщение.

<script src="https://apis.google.com/js/plusone.js">
  isSignedOut: true
</script>

Еще одно примечание: вам больше не нужно управлять состоянием пользователя, чтобы выйти из него. Новый метод gapi.auth.signOut выйдет из системы Вы можете увидеть демо выхода здесь.

Если вы выполняете асинхронное включение, следующие глобальные флаги конфигурации будут подавлять сообщение:

window.___gcfg = { isSignedOut: true };

ОБНОВИТЬ:

Как указывает Chimdi2000, это решение не работает в Chrome. Вы можете добавить следующий CSS, чтобы скрыть сгенерированный iframe:

iframe[src^="https://apis.google.com"] {
  display: none;
}

Поскольку его ответ гораздо более полный, чем мой, и затрагивает дополнительные вопросы, пожалуйста, проверьте его.

Совсем недавно на этой странице был принят новый ответ, который позволяет скрыть всплывающее окно "Добро пожаловать в Google".

window.___gcfg = { isSignedOut: true };

снова не работает.

AIM: "Скрыть или подавить сообщение" Добро пожаловать назад "при входе в Google+" во всех браузерах.

Пожалуйста, если вы использовали `

window.___gcfg = { isSignedOut: true };

подавить предупреждение. После серьезных экспериментов я обнаружил это.

Я рекомендую вам использовать эти версии iframe для подавления любого вида всплывающего окна Google API на вашей веб-странице.

Ифраме 1: iframe[src^="https://apis.google.com"] {display: none;} Это скрывает все всплывающие окна от API Google на вашей веб-странице.

Iframe 2: iframe[src^="https://apis.google.com/u/0/_/sharebox"] {display: none;} Это скрывает все интерактивное диалоговое окно Google Share на вашей веб-странице.

Iframe 3: iframe[src^="https://apis.google.com/u/0/_/widget/oauthflow/toast"] {display: none;} Это скрывает все всплывающее окно "Добро пожаловать назад Google" на вашей веб-странице.

Iframe 4: iframe[src^="https://apis.google.com/u/0/_/+1/"] {display: none;} Это скрывает все " кнопки Google +1 " на вашей веб-странице.

Поэтому для этого конкретного вопроса сделайте это в теге Head вашей HTML-страницы.

 <style> `iframe[src^="https://apis.google.com/u/0/_/widget/oauthflow/toast` </style>

Протестировал его, и он отлично работает.

Принятый ответ является правильным способом сделать это, но если по какой-то другой причине вы просто хотите скрыть сгенерированный iframe, вы можете сделать это с помощью CSS:

iframe[src^="https://apis.google.com"] {
  display: none;
}

Последний код стиля Chimdi2000 должен быть:

<style>
iframe[src^="https://apis.google.com/u/0/_/widget/oauthflow/toast"] {
  display: none;
}
</style>

и работает отлично.

РЕДАКТИРОВАТЬ:

Код ниже также скрывает кнопку входа.

<style>
iframe[src^="https://apis.google.com"] {
    display: none;
}
</style>
Другие вопросы по тегам