Я использую 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) отменяет запрос. Но почему?