passport-google-oauth无法注销用户

我使用passport-google-oauth模块对使用Express.js构build的Web应用程序上的用户进行身份validation。 注销事件是这样处理的:

 app.get('/logout', function(req, res) { console.log("logged out!"); req.logout(); res.redirect('/'); }); 

虽然这确实将用户redirect到login页面(at / ),但我不确定是否真的将他注销。 点击注销后,当我在新选项卡中打开Gmail时,我仍然在那里login(并且没有,我以前没有login过Gmail )。 我怎样才能解决这个问题? 另外, req.logout()做什么来logging用户?

这是非常正常的。 当用户使用他的Google帐户login您的应用程序 ,他还会login所有Google服务。

req.logout()只会破坏用户login时由Passport创build的会话。该会话仅链接到您的应用程序,而不链接到整个用户的Google个人档案。

如果您还想从他的Google帐户注销用户,则必须通过点击button或类似的button将他redirect到https://accounts.google.com/logout

但这是一个非常有争议的政策,因为如果您已经login到Gmail,YouTube等,您将同时从所有Google服务注销。 很烦人。

欲了解更多信息,请通过jmort253查看这个伟大的答案 。

这是因为谷歌会议没有过期这个ü可以使用这一个在谷歌结束。

 // route for logging out app.get('/logout', function(req, res) { req.session.destroy(function(e){ req.logout(); res.redirect('/'); }); }); 

它会破坏你的应用程序的会话。 但是如果你想从谷歌账户完成注销,你可以redirect到

https://mail.google.com/mail/u/0/?logout&hl=en

地址