【发布时间】:2018-03-18 09:25:52
【问题描述】:
你好,所以我有一个 node.js 服务器在后台运行,我相信这就是“登录”用户(我没有写后端)。
app.use(function (req, res, next) {
var nodeSSPI = require('node-sspi');
var nodeSSPIObj = new nodeSSPI({
retrieveGroups: true,
domain: "CAMISCOM"
});
if (req.secure) {
nodeSSPIObj.authenticate(req, res, function (err) {
res.finished || next();
});
} else {
next();
}
});
登录框在 chrome 61 中如下所示:
我发现当我只执行“清除浏览数据->Cookie 和其他站点数据”时,它会注销我。同时关闭浏览器并重新打开会注销我。
我尝试在前端清除 cookie,但 document.cookie 是一个空字符串。我有点迷失在这里。如何实现注销功能?
谢谢!
更新: 我相信我应该尝试在后端删除 req.connection.user 。目前我在前端有一个 ajax 调用,在后端调用一个路由器,从那里我可以访问 req,我将它设置为 null,但这并没有做任何事情
最终更新: 我的解决方案是让后端做
delete req.connection.user
delete req.connection.userSid
delete req.connection.userGroups
通过一个路由器,然后在该路由器成功后将他们重定向到https://log:out@website.com
【问题讨论】:
-
如果 cookie 是 HTTPONLY,您将无法从 JS 访问它。
-
在开发者工具 -> 应用程序 -> Cookies 中也没有显示任何 cookie
-
注销是服务器端操作。让客户端忘记其会话并不会终止服务器上的会话 - 它只会造成已注销的外观。
标签: javascript html node.js cookies