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
目录
相关文章
|
7月前
|
存储 搜索推荐 安全
企业出海如何做好网站Cookie合规
确保企业出海网站合规,理解Cookie在用户登录和个性化体验中的关键作用。通过Cookie携带用户信息,实现免登录和个性化服务。GDPR对Cookie使用提出限制,要求用户同意原则。第三方Cookie用于广告追踪,涉及用户画像。GDPR规定了同意条件和操作方法,企业需采用合规的交互设计。九智汇提供的Cookie自动化同意管理系统帮助企业统一管理多地网站Cookie,满足监管合规。
162 0
|
3月前
|
存储 缓存 数据处理
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
本文介绍了PHP会话控制及Web常用的预定义变量,包括`$_REQUEST`、`$_SERVER`、`$_COOKIE`和`$_SESSION`的用法和示例。涵盖了cookie的创建、使用、删除以及session的工作原理和使用,并通过图书上传的例子演示了session在实际应用中的使用。
php学习笔记-php会话控制,cookie,session的使用,cookie自动登录和session 图书上传信息添加和修改例子-day07
|
4月前
|
数据安全/隐私保护
在某网站的登录页面登录时如果选择“记住用户名”,登录成功后会跳转到一个中间层(页面代码将登录的用户名和密码存在cookie),中间页面中存在一个超链接,单击超链接可以链接到第三个页面查看信息。若选择“
该博客文章通过示例代码和运行结果截图,展示了网站登录过程中如何通过中间层页面使用cookies技术实现“记住用户名”功能,并在点击超链接后查看保存的用户名和密码信息。
在某网站的登录页面登录时如果选择“记住用户名”,登录成功后会跳转到一个中间层(页面代码将登录的用户名和密码存在cookie),中间页面中存在一个超链接,单击超链接可以链接到第三个页面查看信息。若选择“
|
4月前
|
数据安全/隐私保护
|
6月前
|
安全 Java Maven
如何使用jsoup实现网站登录,cookie保存,查询信息
【6月更文挑战第11天】如何使用jsoup实现网站登录,cookie保存,查询信息
224 1
|
6月前
|
安全 Java Maven
使用jsoup实现网站登录,cookie保存,查询信息
【6月更文挑战第7天】使用jsoup实现网站登录,cookie保存,查询信息
99 0
|
7月前
使用cookie自动登录DY,, 避免人机校验
使用cookie自动登录DY,, 避免人机校验
106 6
|
存储 安全 Java
网站安全测试,会话 cookie 中缺少 HttpOnly 属性
可能会窃取或操纵客户会话和 cookie,它们可能用于模仿合法用户,从而使黑客能够以该用户身份查看或变更用户记录以及执行事务 “HttpOnly”属性的会话 cookie。由于此会话 cookie 不包含“HttpOnly”属性,因此 注入站点的恶意脚本可能访问此 cookie,并窃取它的值。任何存储在会话令牌中的 信息都可能被窃取,并在稍后用于身份盗窃或用户伪装。
703 0
|
Java 数据安全/隐私保护
WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现
本篇讲两个案例(记录网站登录人数,记录用户名案例)用会话技术cookie进行实现。
WEB核心【记录网站登录人数,记录用户名案例】Cookie技术实现
|
JavaScript 前端开发 API
js cookie使用攻略(js、nodejs获取与使用cookie、cookie实现自动登录
js cookie使用攻略(js、nodejs获取与使用cookie、cookie实现自动登录