Express, Passportjs, 如何实现只允许用户在一处登陆?

发布于 2022-09-07 08:19:03 字数 633 浏览 6 评论 0

Express, Passportjs, 如何实现只允许用户在一处登陆?

// passport文档中序列化反序列化的代码
// passport会创建一个session表存储用户的session
// 我通过mongoose操作mongodb
// session表是由passport创建的,我并没有session表的模型
// 我该如何优雅的做到,只允许用户在一处登陆

passport.serializeUser((user, done) => {
  const sessionUser = { _id: user._id, username: user.username }
  done(null, sessionUser)
})

passport.deserializeUser((id, done) => {
  User.findById(id, (err, user) => {
    done(null, user)
  })
})

我目前的思路是,在登陆的时候判断,用户的id,如果用户的id在session中存在,先在session表中删除session的记录,然后调用passport的done。实现只允许用户在一处登陆

但是由于没有session的模型,我如何才能更优雅的处理?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

萤火眠眠 2022-09-14 08:19:03

只在一处应该怎么理解?是锁定ip还是锁定浏览器coockie?
据我所知,oauth2.0已经有这种的特性了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文