Cookie或Token实现网站自动登录
自动登录
概念:
首先保证服务器处于一直开启状态,比如微博,因为只有服务器一值开启用户才能自动登录,服务器一旦崩溃,所有用户无法登录,何况自动登录。
自动登录是登录过一次后,在关闭整个浏览器的情况下(服务器一直开启),再次打开浏览器不需要登录即可访问登录过的网站。
一,使用cookie
实现方法
使用cookie保存首次登录成功后的用户名密码,并设置有效时间,提交保存。
Cookie cookie1 = new Cookie("username", "kaiqiang");Cookie cookie2 = new Cookie("password", "123456");//在哪个项目目录下有效cookie1.setPath("/Day1014");cookie2.setPath("/Day1014");//设置有效时长,秒为单位cookie1.setMaxAge(60 * 60);cookie2.setMaxAge(60 * 60);//保存提交resp.addCookie(cookie1);resp.addCookie(cookie2);
在项目的过滤器中通过过滤页面实现自动登录
//session得到首次登录登录的用户信息
//session得到使用cookie自动登录后的用户信息
//只要有一个用户信息不为空,说明已登录了,直接放行,退出
//如果两个用户信息都是空,判断Cookie是否为空,是说明从未登陆过需要跳转到登录页面,cookie不是空说明曾经登录成功过,要去自动登录。自动登录成功后要保存用户信息,以便于过滤验证
HttpServletRequest request = (HttpServletRequest) req;HttpServletResponse response = (HttpServletResponse) resp;HttpSession session = request.getSession();//得到首次登录登录的用户信息EmpManager empManager = (EmpManager)session.getAttribute("empManager");//得到使用cookie自动登录后的用户信息EmpManager empManager1 = (EmpManager)session.getAttribute("empManager1");//只要有一个用户信息不为空,说明已登录了,直接放行,退出if(empManager != null || empManager1 != null){chain.doFilter(req, resp);return;}Cookie[] cookies = request.getCookies();System.out.println("cookie是否为空:" + cookies);String username = "";String password = "";//如果两个用户信息都是空,判断Cookie是否为空,是说明从未登陆过需要跳转到登录页面,cookie不是空说明曾经登录成功过,要去自动登录。if (cookies != null) {for (Cookie c : cookies) {System.out.println(c.getValue());if ("username".equals(c.getName())) {username = URLDecoder.decode(c.getValue(), "utf-8");}if ("password".equals(c.getName())) {password = URLDecoder.decode(c.getValue(), "utf-8");}}System.out.println(username);EmpManager empManager2 = service.login(username, password);if (empManager2 != null) {// 保存自动登录的用户信息request.getSession().setAttribute("empManager1", empManager2);request.getRequestDispatcher("/manager/empList").forward(req,resp);//response.sendRedirect(request.getContextPath() + "/manager/empList");}}else{response.sendRedirect("/Day1014/login.html");}
2,token实现自动登录后期更新
Cookie或Token实现网站自动登录相关推荐
- 网站自动登录功能的设计[转]
网站的自动登录一直都是有利于提高用户体验的功能,如果设计不好,也非常容易泄漏用户的账户信息. 比较常见的功能实现方案是将用户的登录信息保存在浏览器的Cookie中.看到一些设计有缺陷的网站会将用户的用 ...
- 「实用」微信扫码 - 关注公众号后网站自动登录
点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:用好Java中的枚举,真的没有那么简单!个人原创+1博客:点击前往,查看更多 作者:destiny 链接:htt ...
- 自动化测试 - 12306火车票网站自动登录工具
还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 Web的原理就是,浏览器发送一个Request给Web服务器,Web ...
- 自动化测试 (一) 12306火车票网站自动登录工具
还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web ...
- 自动化测试项目实战 ——12306火车票网站自动登录工具
还记得前几年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 通过前两篇博客Fiddler教程和HTTP协议详解,我们了解了Web的原 ...
- 微信扫码:关注公众号后网站自动登录的实现原理
点击上方 Java后端,选择 设为星标 优质文章,及时送达 作者:destiny 链接:segmentfault.com/a/1190000022188562 序言 常见方式 平常大家见到过最多的扫码 ...
- 实现微信扫码或关注公众号后网站自动登录
常见方式 平常大家见到过最多的扫码登录应该是 开放平台网页登录 大概形式就是:点击微信登录后会出现一个黑页面,页面中有一个二维码,扫码后可以自动获取用户信息然后登录,但是这种方式需要申请开放平台比较麻 ...
- 【系统自动化开发】Python实现广东省公务员报名系统网站自动登录
[系统自动化开发]Python实现广东省公务员报名系统网站自动登录 [系统自动化开发]Python实现广东省公务员报名系统网站自动登录 一.原理 二.代码 [系统自动化开发]Python实现广东省公务 ...
- 自动化测试实战(一)12306火车票网站自动登录工具
还记得2011年春运,12306火车票预订网站经常崩溃无法登录吗. 今天我们就开发一个12306网站自动登录软件. 帮助您轻松订票 Web的原理就是,浏览器发送一个Request给Web服务器,Web ...
- 网络爬虫playwright实现网站自动登录并签到
网络爬虫使用playwright工具来替代selenium工具,模拟浏览器加载动态网页,应对使用了json.ajax的复杂网站,从而通过网络爬虫实现网站自动登录并签到,设计思想如下: 1.打开网站登录 ...
最新文章
- 设置Open in Terminal快捷键Alt+Shift+Z,方便angular项目的各种命令输入(多任务状态下)
- boost::lambda::constructor用法的测试程序
- 反向传播算法_反向传播算法:定义,概念,可视化
- c语言单元测验,C语言程序设计单元测验一.PDF
- vue 兄弟组件之间的传值
- 从安装认识Angular 2
- Excel数据分析实例
- LimeSDR实验教程(14) GSM嗅探
- jUI项目最初的名字为DWZ,这个名字是怎么来的?后来为什么又改为jUI?
- openssl源代码方式安装以及简单的实验
- 2021-04-19一万小时定律
- 5G NTN进展简述
- 脉冲式和相位式激光测距
- 使用FFMpeg将音频PCM数据生成WAV和MP3文件
- 企业级数据管理——DAMA数据管理
- systemctl和service区别
- layDate显示默认时间
- 把复杂的事做简单,这是一种本事
- Spring Cloud Netflix五大组件简介
- 低代码指南100解决方案:41还在用excel做进销存管理?这个系统让采购、仓库、销售管理更简单