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到
地址