Google Signin не перенаправляется после выхода

Я использую Google Sign на своем веб-сайте, который до недавнего времени работал нормально. Теперь, когда пользователь выходит из системы, Google выходит, однако не перенаправляет пользователя на страницу, которую я установил в сценарии.

Я использую следующий сценарий выхода:

<script>
  function signOut() {
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.signOut().then(function () {
      console.log('User signed out.');
      window.location = "/user/logout"
    });
  }
</script>

Журнал консоли выполняется, но window.location должен перенаправлять пользователя, чего не происходит. Никаких ошибок, просто ничего не происходит.

ОБНОВЛЕНИЕ

На самом деле я вижу, что URL-адрес /user/logout вызывается в бэкэнде, но он ничего не делает в браузере пользователя. Ниже код Python, который запускается при загрузке URL-адреса. Сеанс также не сбрасывается, потому что, когда я нажимаю «Обновить», пользователь все еще находится в моем приложении (но не в Google).

class LogoutHandler(BaseHandler):
  def get(self):
    self.auth.unset_session()
    self.redirect(self.uri_for('home'))

ОБНОВЛЕНИЕ 2

Если я открываю ссылку в новой вкладке, она отлично выходит. Если я изменю цель на «_top» или «_self», она просто вызовет URL-адрес в бэкэнде, но не запустится в браузере по неизвестной причине.

ОБНОВЛЕНИЕ 3

Выяснил причину: браузер (в данном случае Chrome) отменяет запрос. Но почему?


person Vincent    schedule 24.08.2015    source источник


Ответы (2)


Одно из предложений — выполнить выход после полной инициализации GoogleAuth (в вашем коде auth2). Ознакомьтесь с официальным справочником.

В вашем случае попробуйте

<script>
  function signOut() {
    var auth2 = gapi.auth2.getAuthInstance();
    auth2.then(function(){
        auth2.signOut().then(function () {
          console.log('User signed out.');
          window.location = "/user/logout"
        });
    });
  }
</script>
person arifin4web    schedule 26.08.2015
comment
Ничего не менял к сожалению. - person Vincent; 28.08.2015

Решил это, сделав нормальный

<a href="/user/logout"></a> 

и перемещение сценария выхода Google на страницу, на которую перенаправляется пользователь.

person Vincent    schedule 22.09.2015