Не выходит из проекта Meteor с учетными данными Google

Я делаю веб-сайт на Meteor, и у меня возникают проблемы при входе в Google. Моя веб-страница правильно входит в систему, когда пользователь нажимает кнопку, запрашивает адрес электронной почты и пароль и правильно выходит из моей веб-страницы. Проблема в том, что моя страница каким-то образом хранит UserId от Meteor, и в следующий раз, когда я нажимаю кнопку «Войти», она не запрашивает пароль. Более того, после выхода из системы, если я попытаюсь войти на Youtube, GMail или что-то еще, он войдет в систему с учетной записью, которую я только что вышел со своей веб-страницы. Любая идея, почему это могло произойти?

Я пытался решить эту проблему, добавив этот код в свою функцию выхода из системы, но это не сработало:

Template.user_loggedin.events({
"click #logout": function (e, tmpl) {
    Meteor.logout(function (err) {
        if (err) {
            //An error occured
            Bert.alert('Error al cerrar sesión. Por favor, vuelva a intentarlo', 'warning', 'fixed-top', 'fa-remove');
        } else {
            // your cleanup code here
            Object.keys(Session.keys).forEach(function (key) {
                Session.set(key, undefined);
            });
            Session.keys = {}; // remove session keys
            Router.go('/');  // redirect to the home page or elsewhere using iron:router

            Bert.alert('Cerrado sesión correctamente', 'success', 'fixed-top', 'fa-check');
            }
        });
    }
});

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

И это моя функция входа в систему:

Template.user_loggedout.events({
    "click #login": function (e, tmpl) {
        e.preventDefault();

        Meteor.loginWithGoogle({
            //Show what information is needed from the user
            requestPermissions: ['profile', 'email', 'https://www.googleapis.com/auth/spreadsheets']
        }, function (err) {
            if (err) {
                Session.set('errorMessage', err.reason || 'Unknown error');
                Bert.alert('Error al Iniciar Sesión. Por favor, vuelva a intentarlo', 'warning', 'fixed-top', 'fa-remove');
            } else {
                Bert.alert('Iniciado sesión correctamente', 'success', 'fixed-top', 'fa-check');
            }
        });
    }
});

person Thotensar    schedule 18.09.2017    source источник


Ответы (1)


Я не уверен на 100%, но в основном, используя аутентификацию Google, вы говорите Meteor отложить аутентификацию на Google.

Поэтому, когда вы выходите из Meteor, он уничтожает токен входа в локальное хранилище, делая там правильные вещи.

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

Я думаю, что это фича, а не баг.

person Mikkel    schedule 19.09.2017