node.js - passport.js 中的远程强制注销
问题描述
我想在我们的网站上创建一个“远程注销”功能。
某些服务提供此功能,例如 google.. https://support.google.com/mail/answer/8154
我在 node.js 中使用了 passport.js,所以我想知道如何制作这个功能,但找不到怎么做。
我想通过用户 ID 销毁会话。我们需要注销该用户的所有会话,因为人们使用许多浏览器和设备登录。
解决方案
我在我的网站上添加了与此类似的功能。
我找不到使用 PassportJS 的方法,但我所做的是在我的用户模式(mongoDB)中添加一个额外的布尔字段,称为FORCE_LOGOUT
.
我通过前端的请求将值更改为FORCE_LOGOUT
。true
POST
然后在我的主 app.js 脚本中,我检查了用户是否将该字段设置为 true,然后在允许他们继续之前强制他们注销。
我使用 expressJs,所以它看起来像这样:
app.use((req, res, next) => {
if (req.user && req.user.FORCE_LOGOUT){
req.user.FORCE_LOGOUT = false;
req.user.save(err => {
if(err) console.error(err);
req.logout();
return next();
})
} else {
return next();
}
});
可能有更好的方法来实现这一点,但这就是我解决它的方法,所以希望它有助于指导其他人。
推荐阅读
- image - JavaFX Image 和 ImageViewer 不支持 jpeg
- flutter - Dart Native Library - 为 Android 和 iOS 编译
- javascript - 正确访问 Vue 3 中的反应式数组
- laravel - Laravel 按需通知不发送电子邮件
- plotly-python - python-plotly-multiple y-axis:如何关闭两个子图上的网格?
- c++ - 系统字体不适用于 OEM_CHARSET
- express - 如何编写 Nginx 配置文件以传递带有 id ([0-9]+) 的 URL 以执行负载平衡
- javascript - 将 PHP 字符串和整数作为参数传递给 JavaScript 函数
- reactjs - 如何在 useReducer 中更新键索引数组状态?
- javascript - 自动从一个 div 复制文本并将另一个 div 中的文本替换为 fullpage.js