我有一个快速网络应用程序,它使用带有connect-redis的快速会话来创建和存储会话,并将会话cookie发送回浏览器。这在所有机器上工作正常(并且已经工作了2年以上)。但是,Windows 10引入了一些阻止创建connect.sid会话cookie的东西 - 适用于所有浏览器(chrome,IE,Edge)。
这当然会阻止用户登录我的网站,因为永远不会创建或保持会话。我已经检查了我的身份验证路由,它似乎在Windows 10环境中工作正常(信用卡被正确发送到服务器并对数据库进行了验证)但是connect.sid会话cookie不存在,因此浏览器没有知道用户在后续页面加载时已经过身份验证。我再次强调,这种方法已经运行了好几年,并且只在Windows 10机器上运行的所有浏览器中都失败了。
有人知道这是为什么/如何解决这个问题?
答案 0 :(得分:0)
原来这是一般而不是实际问题。我们的代码中包含以下块:
- (void)previewNotPlaying
{
// _previewButton is an IBOutlet to the button
[_previewButton setTitle:@"Preview" forState:UIControlStateNormal];
_isPreviewPlaying = NO;
}
因此,这里要学习的唯一有趣的教训是,快速解释windows 10 useragent字符串无法将其识别为任何内容:
app.use(function(req, res, next) {
if (req.useragent.isDesktop || req.useragent.isMobile) {
sessionMiddleware(req, res, next);
} else {
next();
}
});