2015-03-03 2 views
0

документация Passport говорит its req.logout function will destroy any existing session and other passport/user dataпаспорт не разрушив аутентификации сеанса для Google

Я бегу на вопрос при этом, когда я req.logout() это действительно уничтожить сессию, но если я вернусь к /auth/google я сразу же, потому что вошли в систему кажется, что сам Google помнит мои учетные данные.

Как удалить мои учетные данные с помощью Паспорта Google?

ответ

0

Вы не можете контролировать cookie сеанса для Google (или любого другого поставщика авторизации, если на то пошло). Вы можете попытаться перенаправить пользователя на страницу выхода из системы Google.

Подумайте об этом таким образом, когда я выхожу из вашего сайта, я не ожидаю выхода из Google.

+0

мне не нужно, чтобы зарегистрировать их из Google, но я хочу аутентификацию Google с моим приложением, чтобы быть уничтожена. Фактически с другим приложением, которое я использую, 'req.logout()' похоже делает это автоматически. У меня есть идея, почему он не работает с моим другим приложением, поскольку код кажется в основном тем же, но перенаправление на '/ auth/google' не автоматически автоматически вводит их снова. –

+0

Ничего, только вы будете выбор учетной записи, если для входа в систему требуется несколько учетных записей. Есть ли другой способ справиться с этим? –

+0

@ ExplosionPills рассмотрит [параметры URI аутентификации Google] (https://developers.google.com/accounts/docs/OpenIDConnect#authenticationuriparameters), в частности, используя ['{prompt: 'permission'}'] (https://developers.google.com/accounts/docs/OpenIDConnect#re-consent). – idbehold

0

Я знаю, что это довольно старый вопрос, но я был в такой же ситуации, как ваша, и после @idbehold comment я достиг, чтобы не войти аккаунт Google пользователя, но заставляя /Google/аутентификации выбрать учетную запись :

app.get('/auth/google', passport.authenticate('google', { 
    scope: [ 
     'https://www.googleapis.com/auth/userinfo.profile', 
     'https://www.googleapis.com/auth/userinfo.email' 
    ], 
    prompt: 'select_account' 
})); 

с, что я избегаю перенаправлять их на странице выхода из системы в Google (и, следовательно, не выходя из системы от каждого отдельного сервиса Google), а также позволяя пользователю выбирать между своими счетами.

Надеется, что это все еще помогает :)