cookie实现网站自动登录

简介:

在网上看到一篇博客,所以将里面的内容用自己的方式写下来

1、Web程序中第一次登录后,再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机)。实现这个功能关键就是服务端要识别客户的身份。而用Cookie是最简单的身从验证。

如果用户第一次登录,可以将用户名作为Cookie写到本地,代码如下:

2、将用户名以cookie的方式发送到客户端,并且将用户名以session属性的方式保存到服务器端以保证安全性,最后处理JSESESSIONID使其持久化(以cookie的形式保存到客户端)当第二次登录时HTTP响应头便会出现两个ID但没有影响,具体代码如下:

复制代码
 1 /*
 2          * 如果是第一次登录,将用户名和密码作为cookie写到本地
 3          */
 4         String name = request.getParameter("name");
 5         String pwd = request.getParameter("password");
 6         User user = new User();
 7         String userInfo = user.toString();
 8         if(null!=name && !"".equals(name)){
 9             user.setName(name);
10         }
11         if(null!=pwd && !"".equals(pwd)){
12             user.setPassword(pwd);
13         }
14         Cookie cookie = new Cookie("user",userInfo);
15         cookie.setMaxAge(360*24*60);//设置一年有效期
16         cookie.setPath("/");//可在同一应用服务器内共享方法
17         response.addCookie(cookie);//放松到客户段
18         //凭这个Cookie就自动登录并不安全可以在服务端使用一个Session来管理用户。
19         //当第一次登录成功后,就创建一个Session,并将用户的某些信息保存在Session
20         HttpSession session = request.getSession();
21         session.setAttribute("user", userInfo);
22         session.setMaxInactiveInterval(3600*2);//2小时
23         //但是当cookie关闭后,用于保存SessionID的JSESSIONID会消失(此时cookie并没有过期) ,所以得将JSESESSION持久化
24         Cookie sessionId = new Cookie("JSESESSIONID",session.getId());
25         sessionId.setMaxAge(2*60);//设置两小时
26         sessionId.setPath("/");
27         response.addCookie(sessionId);
28         
29         
30         
31         //当用户第二次登陆时,检测这个cookie是否存在
32         Cookie[] cookies = request.getCookies();
33         for (Cookie cookie2 : cookies) {
34             //如果存在这个cookie进行页面跳转
35             if(cookie2.equals("user")){
36                 if(session.getAttribute("user")!=null){
37                     request.getRequestDispatcher("直接进入主页面的url").forward(request, response);
38                     break;
39                 }else{
40                     //跳转到登录页面
41                 }
42                 
43             }
44         }
45          //如果使用上面的代码,即使浏览器关闭,在两小时之内,Web程序仍然可以自动登录。
46         //如果我们自已加一个JSESSIONID Cookie,在第一次访问Web程序时,
47         //HTTP响应头有两个JSESSIONID,但由于这两个JSESSIONID的值完全一样,没有任何影响
48         //如果在响应头的Set-Cookie字段中有多个相同的Cookie,则按着path和name进行比较,如果这两个值相同,
49         //则认为是同一个Cookie,最后一个出现的Cookie将覆盖前面相同的Cookie
目录
相关文章
|
5月前
|
存储 搜索推荐 安全
企业出海如何做好网站Cookie合规
确保企业出海网站合规,理解Cookie在用户登录和个性化体验中的关键作用。通过Cookie携带用户信息,实现免登录和个性化服务。GDPR对Cookie使用提出限制,要求用户同意原则。第三方Cookie用于广告追踪,涉及用户画像。GDPR规定了同意条件和操作方法,企业需采用合规的交互设计。九智汇提供的Cookie自动化同意管理系统帮助企业统一管理多地网站Cookie,满足监管合规。
56 0
|
12天前
使用cookie自动登录DY,, 避免人机校验
使用cookie自动登录DY,, 避免人机校验
26 6
|
11月前
|
存储 安全 Java
网站安全测试,会话 cookie 中缺少 HttpOnly 属性
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务 “HttpOnly”属性的会话 cookie。由于此会话 cookie 不包含“HttpOnly”属性,因此 注入站点的恶意脚本可能访问此 cookie,并窃取它的值。任何存储在会话令牌中的 信息都可能被窃取,并在稍后用于身份盗窃或用户伪装。
497 0
|
Java 数据安全/隐私保护
WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现
本篇讲两个案例(记录网站登录人数,记录用户名案例)用会话技术cookie进行实现。
WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现
|
JavaScript 前端开发 API
js cookie使用攻略(js、nodejs获取与使用cookie、cookie实现自动登录
js cookie使用攻略(js、nodejs获取与使用cookie、cookie实现自动登录
|
Web App开发
清除Chrome浏览器特定网站的Cookie
清除Chrome浏览器特定网站的Cookie
240 0
清除Chrome浏览器特定网站的Cookie
|
数据采集 Python Web App开发
python爬虫之cookie方式自动登录巴比特网
最近打算抓取公司内部PPT模板库中的PPT,发现被各种安全屏蔽。因为好久没写程序了,因此写几个例子回顾下基本的爬虫知识 目标网址巴比特的登录页面 http://8btc.
1734 0