Cookie实现记住密码及自动登录
最近对华丹快速开发平台进行升级,需要对实现记住密码以及自动登录功能,下面主要说一下如何用cookie实现此功能。
一、什么是cookie?
Cookie,有时也用其复数形式Cookies。是保存在客户端的文本文件,这个文件与特定的Web网站关联在一起,保存了该客户端访问这个Web网站时的信息。由于“Cookie”可以保存在客户端的信息, 因此它可以帮助我们实现记录用户个人信息的功能。
二、cookie的参数
(1)Name/Value:设置Cookie的名称及相对应的值。
(2)expire:设置Cookie的生存期,可以让cookie保存到本地,进行持久保存,不随浏览器的关闭而删除。
(3)Path:定义了Web站点上可以访问该Cookie的目录 。
(4)Domain:指定了可以访问该 Cookie 的 Web 站点或域。
(5)Secure:指定是否使用HTTPS安全协议发送Cookie。
(6)HTTPOnly:用于防止客户端脚本通过document.cookie属性访问Cookie。
三、cookie的设置及获取
1、使用JS设置及获取
(1)设置:主要代码如下
var userid="aa";var username="bb";//获取当前时间var date=new Date();var expireDays=10;//将date设置为10天以后的时间date.setTime(date.getTime()+expireDays*24*3600*1000);//将userId和userName两个cookie设置为10天后过期document.cookie="userid="+escape(userId)+";expire="+date.toGMTString()+";path=https://www.huadaninfo.com/";document.cookie="userName="+escape(userName)+";expire="+date.toGMTString()+";path=https://www.huadaninfo.com/";
(2)获取:代码如下
function getCookie(key){var cookieStr = document.cookie;var cookieArr = cookieStr.split("; ");for ( var i = 0; i < cookieArr.length; i++) {var cookieObj = cookieArr[i].split("=");if (cookieObj[0] == key){return unescape(cookieObj[1]);}}return "";}
(3)说明:
1)使用js设置和获取非常方便,不需要使用其他语言,适合于不太重要的信息存储。
2)有些朋友可能发现我这里没有用httponly属性,不设置httponly可能会发生xss攻击,而设置了该属性,js将不能获取cookie。
2、使用JAVA设置及获取,这里我选择使用ajax和jsp结合使用,通过js使用ajax将内容传递给jsp页面,jsp页面通过java程序存储及返回。(此处ajax使用开发平台内置的,可自行改成JS的)
(1)设置
1)js部分
//存储cookie
function saveCookie(key,val,expire,path){var url =charisma.contextPath+"/saveCookie.jsp";var reqData ="keyStr="+escape(key)+"&valStr="+escape(val)+"&expireStr="+expire+"&pathStr="+path;var xHttp = new XHttp(url);xHttp.method = "POST";xHttp.reqData = reqData;xHttp.async=false;xHttp.callback=function(xmlHttp){var responseText = xmlHttp.responseText;}xHttp.send();xHttp=null;}
2)jsp部分
<%String keyStr = request.getParameter("keyStr")String valStr = request.getParameter("valStr")String expireStr =request.getParameter("expireStr")String pathStr =request.getParameter("pathStr")String FTS = "HuAdANINfo_FilTerSTRing";//自定义加密程序。DesUtil desUtil = new DesUtil();valStr = desUtil.encrypt(valStr,FTS);Cookie cookie = new Cookie(keyStr,valStr);cookie.setMaxAge(60*60*24*10);cookie.setPath(pathStr);cookie.setHttpOnly(true);response.addCookie(cookie);%>
(2)获取
1)js部分
//返回cookie值function getCookieValForName(cookieName){var cookieVal = "not Have This Cookie";var url =charisma.contextPath+"/getCookieVal.jsp";var reqData ="cKey="+cookieName;var xHttp = new XHttp(url);xHttp.method = "POST";xHttp.reqData = reqData;xHttp.async=false;xHttp.callback=function(xmlHttp){var responseText = xmlHttp.responseText;cookieVal = unescape(responseText);}xHttp.send();xHttp=null;return cookieVal;}
2)jsp部分
<%String key=request.getParameter("cKey")Cookie[] cookies = request.getCookies(); String val = "not Data"; if (cookies != null ) { for (int i = 0; i < cookies.length; i++) { Cookie c = cookies[i]; if(c.getName().equalsIgnoreCase(key)) { val = c.getValue(); } } } if(!"not Data".equals(val)){String FTS = "HuAdANINfo_FilTerSTRing";DesUtil desUtil = new DesUtil();val = desUtil.decrypt(val,FTS);}else{val="";}out.println(val);%>
(3)说明:使用这种方式可以尽可能避开xss攻击。
Cookie实现记住密码及自动登录相关推荐
- Cookie实现记住密码、自动登录
前端代码 <form id="form" action="xxx" method="post"><div><i ...
- 基于localStorge开发登录模块的记住密码与自动登录
前沿||我是乐于分享,善于交流的鸟窝 先做写一篇关于登录模块中记住密码与自动登录的模块.鸟窝微信:jkxx123321 关于这个模块功能模块的由来,这是鸟大大的处女秀,为什么这么说呢?一天在群里,一个 ...
- android 自动登录机制,Android登录记住密码以及自动登录的实现
记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...
- 业务系统实现记住密码和自动登录功能
业务系统实现记住密码和自动登录功能 公司的业务系统本来是受域控的,用户不需要登录可以直接访问系统.当然,虽然不用人工登录,系统本身会读取电脑的用户名为登录标识,对系统操作权限和记录也是以电脑名.近段时 ...
- EChat(简易聊天项目)六、实现记住密码和自动登录
利用SharedPreferences登录界面记住密码和自动登录 ①修改login_layout.xml文件,增加如下代码,即添加2个勾选框 <LinearLayoutandroid:orien ...
- Android登录记住密码以及自动登录的实现
记住密码以及自动登录的实现主要依赖于SharedPreferences类的使用,SharedPreferences是一个轻量级的存储类,用于存储一些小数据,比如登录账号密码以及状态信息等. 本文章只针 ...
- Winform 实现记住密码和自动登录
一般的软件都有记住密码和自动登录功能,所以今天说一种winform的记住方式. 效果: 关闭软件,再次打开时,密码已经填写好了,不需要输入. 点击登录也能校验成功,完美实现登录记住账号密码. 自动登录 ...
- Cookie实现用户登录记住密码,实现自动登录
什么是Cookie 在java是一个类,一对键和值组成,键值都是字符串类型,每个cookie只能保存一对键和值.每个cookie只能保存最大4K的数据 案列应用 保存用户名和密码在浏览器端,Cooki ...
- php中实现记住密码下次自动登录的例子
做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求.这种功能一般都是通过cookie来实现的.本篇文章将简单说一下如何使用php实现该需求的.当然实现该需求的方法 ...
最新文章
- MSSql2005: Cube 和 RollUp 的区别
- python之简单的get和post请求
- 前端学习(3252):vs code中插件的使用
- 一路风景之川藏线徒步笔记
- 黎活明给程序员的忠告 (必藏经典)
- 写文献综述的28个要点
- 电线电缆材料stru结构检测知识大全
- 底层小程序员 练手做一个网站不小心赚了几十亿
- AWS之Glue使用方法
- python中ox_Python中os包的用法
- 手工搭建多层(多隐藏层)BP神经网络
- 企业实施单元测试现状调查(浙江大学管理学院 李云)
- 16.控制转移指令(条件跳转指令、比较条件跳转指令、多条件分支跳转指令、无条件跳转指令)
- AUC、ROC、ACC区别
- 服务器上传图片显示图片404,关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题...
- RT-thread基础移植//依据rtt实战学习记录
- python起笔落笔_起笔、行笔、落笔,讲话稿还能这样写
- TI DaVinci(达芬奇)入门
- 嵌入式驱动编写-LCD驱动程序
- Nginx学习(二)