Express, Passportjs, 如何实现只允许用户在一处登陆?
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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
楼主尝试一下 express-js-passport-js-how-to-restrict-multiple-login-by-the-same-user 这个看行不
passport-one-session-per-user
只在一处应该怎么理解?是锁定ip还是锁定浏览器coockie?
据我所知,oauth2.0已经有这种的特性了