让cookie失效要注意的问题
下面的代码无法让cookie 失效,
因为保存的cookie 设置了path,
失效时没有设置path, 所以无法cookie 失效,
注意:想让cookie 失效,除了设置有效期为0,其他参数(path,domain)必须完全一样,
正确的:
/*** * 是否保存cookie * @param response * @param emaiCookieName * @param cookieValue * @param isSave : 是否保存用户名(记住用户名) * @return */ public static Cookie rememberMe(Cookie[] cookies , /*HttpServletRequest request,*/HttpServletResponse response,String emaiCookieName, String cookieValue, boolean isSave) { // HttpServletRequest request = ServletActionContext.getRequest(); boolean flag = false; // Cookie passwordCook = null; Cookie emailCook = null; if (cookies != null) { System.out.println("cookie 不为空"); for (Cookie c : cookies) { // if (passwordCookieName.equals(c.getName())) // { // c.setValue(URLEncoder.encode(password, "utf-8")); // passwordCook = c; // flag = true; // continue; // } // if(c.getName().equals(Constant2.COOKIE_KEY_ISAUTO_LOGIN )){ // System.out.println(Constant2.COOKIE_KEY_ISAUTO_LOGIN+":"+cookieValue); // } if (emaiCookieName.equals(c.getName()) ) { System.out.println("找到了 " + emaiCookieName); System.out.println("cookie的值为 " + c.getValue()); if((! ValueWidget.isNullOrEmpty(cookieValue))){ try { c.setValue(URLEncoder.encode(cookieValue, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } emailCook = c; flag = true; break; } } } // HttpServletResponse response = ServletActionContext.getResponse(); if (isSave) { if (!flag) { System.out.println("没有找到 " + emaiCookieName); // passwordCook = new Cookie(passwordCookieName, URLEncoder // .encode(password, "utf-8")); try { emailCook = new Cookie(emaiCookieName, URLEncoder.encode( cookieValue, "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } emailCook.setMaxAge(10000000);//单位是秒,所以大概115 天 emailCook.setPath("/");//设置cookie时,设置path为根路径 response.addCookie(emailCook); flag=true; System.out.println("保存cookie:"+emailCook.getValue()); } else { if (flag) { System.out.println("让 cookie 失效"); emailCook.setMaxAge(0); emailCook.setPath("/");//设置cookie时,设置path为根路径 ,如果不设置path ,则无法让cookie 失效 response.addCookie(emailCook); } } return emailCook; }
参考:
相关推荐
在使用YII2框架开发Web应用程序时,开发者经常会遇到自动登录Cookie失效的问题。Cookie失效会导致用户在关闭浏览器之后重新打开浏览器时,自动登录功能失效,用户需要重新登录。这会影响用户体验,并且可能会导致...
在前后端分离的架构中,Vue.js作为前端框架与Spring Boot作为后端服务进行交互时,常常会遇到跨域和Session、Cookie失效的问题。本文将详细介绍如何解决这些问题。 首先,跨域是由于浏览器的安全策略限制,同一源...
但要注意的是,localStorage不会触发Web Storage事件,所以在使用时需要注意浏览器兼容性和安全性问题。 2. 使用cookie:cookie的存储大小受到限制(大约4KB),但它同样可以用来存储小块数据,并设置过期时间。...
在实际应用中,Cookie通常有生命周期,超过这个时间,Cookie就会失效。为了防止用户因Cookie过期而被迫重新登录,插件可以定期检查Cookie的有效性。一旦发现Cookie即将过期或者已经过期,它会触发一个事件,允许...
Cookie机制是HTTP协议中用于维护会话状态的客户端解决方案...因此,建议在使用Cookie时,要遵循相关法律法规,例如欧洲的GDPR或中国的网络安全法,并向用户清晰地说明Cookie的用途,最好还能提供一个同意或拒绝的选项。
六、Cookie的安全与隐私问题 由于Cookie包含敏感信息,因此需要注意安全性和隐私保护。可以通过设置HttpOnly属性防止JavaScript访问Cookie,以降低XSS攻击风险;设置Secure属性确保Cookie只在HTTPS连接中传输,增加...
请注意,这种方法只删除了Servlet知道的Cookie,如果存在其他第三方或者未知来源的Cookie,它们将不会受到影响。因此,确保准确跟踪和管理在应用中设置的所有Cookie非常重要。 在实际应用中,你可能还需要考虑其他...
首先,让我们了解创建Cookie的基本步骤。在JavaScript中,我们使用`document.cookie`属性来操作Cookie。以下是一个创建Cookie的示例: ```javascript function setCookie(name, value, days) { var expires = ""; ...
若设置为负值,Cookie将在浏览器关闭时失效。接着,我们可以通过`setPath()`设定Cookie的作用路径,例如`cookie.setPath("/test/test2")`。最后,使用`response.addCookie(cookie)`将Cookie添加到响应中,发送给...
需要注意的是,Cookie的生命周期由`expires`属性控制,如果未指定,则默认为会话Cookie,浏览器关闭后即失效。另外,`path`属性决定了哪些页面可以访问该Cookie,而`domain`属性则允许跨子域共享Cookie。同时,每个...
四、Cookie的限制与注意事项 - 每个域下的Cookie数量有限制,通常不超过20个。 - 单个Cookie的大小不能超过4KB,以防内存溢出。 - 安全性问题:由于Cookie存储在客户端,敏感信息不应直接存入,应加密处理。 - 隐私...
### JavaScript操作Cookie知识点详解 #### 一、Cookie简介 ...- 使用JavaScript操作Cookie时要注意编码和解码,避免特殊字符导致的问题。 - 当处理大量的Cookie时,需要注意浏览器对单个站点Cookie数量和大小的限制。
每次用户访问同一网站时,浏览器会自动将Cookie发送回服务器,从而让服务器识别用户。Session则是在服务器端存储用户状态的一种方式,它为每个会话创建一个唯一的ID,保存在服务器的内存中,通过这个ID来追踪用户的...
在编程领域,Cookie是一种在客户端和服务器之间传递信息的小型文本文件。...在实际应用中,还要注意合理设置Cookie的有效期,以及考虑用户隐私和数据安全。希望这个小例子能帮助你快速掌握Cookie的使用。
设置Cookie的有效时间可以让它在一段时间后自动失效。以下是一些示例代码: ```csharp // 设置1小时后过期 Response.Cookies["MyCookie"].Expires = DateTime.Now.AddHours(1); // 设置60分钟后过期 Response....
在开发过程中,通过登录接口获取Cookie通常涉及到复杂的网络请求和响应处理,且由于淘宝系统的安全性,这种手动操作容易导致Cookie失效或者无法正确获取。而淘号提取器通过内置浏览器的方式,模拟用户登录过程,从而...
- **失效时间**:指定了Cookie何时过期,可设置为浏览器会话结束时或一个特定的日期和时间。 - **安全标志**:如果设置,确保Cookie只通过HTTPS安全连接发送,增强数据传输的安全性。 3. **Cookie示例** ``` ...
1. **谨慎操作**:修改Cookie可能会影响到网站的正常运行,因此在操作前应了解相关Cookie的作用,避免引起不必要的问题。 2. **隐私风险**:虽然编辑Cookie可以帮助保护隐私,但过度依赖或滥用也可能暴露个人偏好,...
要删除Cookie,只需创建一个与要删除的Cookie具有相同名称的新Cookie,并将其最大存活时间设置为0: ```java Cookie cookieToRemove = new Cookie("name", ""); cookieToRemove.setMaxAge(0); response.add...
删除Cookie实际上是在客户端设置一个立即过期的同名Cookie,从而使原来的Cookie失效。 ```csharp // 删除名为"userInfo"的Cookie HttpCookie aCookie = new HttpCookie("userInfo"); aCookie.Expires = DateTime....