IPhone UC 浏览器基于cookie登录的用户无法退出问题。
其实是在服务端添加 cookie 时 httponly 设置为true 在服务端删除失败,导致的用户无法退出。
事件还原
在服务端增加 cookie 时 httponly 参数设置为 true,添加代码如下
Cookie cookie = new Cookie(key, value);
cookie.setPath("/");
if(StringUtils.isNotBlank(domain)){
cookie.setDomain(domain);
}
cookie.setHttpOnly(true);
cookie.setMaxAge(expire);
在服务端 删除 cookie 时,其实是吧相同 key 的值设置为空个,并且过期时间设置为0,
Cookie cookie = new Cookie(key, null);
cookie.setMaxAge(0);
cookie.setPath("/");
if (StringUtils.isNotBlank(domain)) {
cookie.setDomain(domain);
}
cookie.setHttpOnly(true); // 删除时未添加
response.addCookie(cookie);
在删除时未添加标红出代码,导致在 IPhone UC 浏览器 删除cookie 失败,其他 浏览器 PC 浏览器都正常。