【问题标题】:Killing a User Session in Passport在 Passport 中终止用户会话
【发布时间】:2018-03-17 00:52:13
【问题描述】:

我想将用户从他们活跃的 passport.js 会话中踢出。

我可以通过这个链接方法获取用户名:

Trying to view all logged in Users in Express.js Node.js Passport.js

是否有一种简单的方法可以终止特定用户的当前会话,这样他们在登录时就没有活动的“已验证用户”会话?

我希望能够“踢”某人离开服务器,基本上是在他们可能拥有的任何打开的浏览器中剥夺他们的任何会话。

【问题讨论】:

标签: node.js mongodb express session passport.js


【解决方案1】:

当您根据令牌确定用户是谁时,一种选择是在反序列化中进行此检查。您可以像平常一样找到用户对象,然后检查它是否有一个字段说不验证会话并且不返回用户。

例如,如果您在对象上有一个 kick_until 日期并在反序列化中检查该日期,那么直到该日期之后,在反序列化中返回一个 unauth 会话。

选项 2:将中间件应用于检查此信息的所有路由并调用 req.session.destroy(); 以强制销毁会话。 (不会阻止重新登录,但如果您忘记切换确定应在第一次执行后踢出的字段,会话将不会停留并重新销毁)

【讨论】:

    猜你喜欢
    • 2017-04-30
    • 2020-08-20
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 2015-10-28
    • 2013-12-19
    相关资源
    最近更新 更多