Cookie实现记住密码功能

 

 

前端代码

1 <div class="custom-control custom-checkbox " style="float: right;">
2    <input type="checkbox" class="custom-control-input" name="remFlag" id="remFlag" onclick="remember();" >
3    <label class="custom-control-label" for="remFlag">记住密码&nbsp;&nbsp;</label>
4 </div>

前端JS

复制代码
 1     <script language="javascript">
 2         window.onload = function(){ rememberPass();}
 3 
 4         function rememberPass() {
 5             var str = getCookie("loginInfo");
 6             str = str.substring(0,str.length);
 7             var username = str.split("+")[0];
 8             var password = str.split("+")[1];
 9 
10             //自动填充用户名和密码
11             $("#login-username").val(username);
12             $("#login-password").val(password);
13         };
14 
15         //获取cookie
16         function getCookie(cname) {
17             var name = cname + "=";
18             var ca = document.cookie.split(';');
19             for(var i=0; i<ca.length; i++) {
20                 var c = ca[i];
21                 while (c.charAt(0)==' ') c = c.substring(1);
22                 if (c.indexOf(name) != -1) return c.substring(name.length, c.length);
23             }
24             return "";
25         }
26 
27         //记住密码功能
28         function remember(){
29             var remFlag = $("input[type='checkbox']").is(':checked');
30             if(remFlag==true){ //如果选中设置remFlag为1
31                 //cookie存用户名和密码,回显的是真实的用户名和密码,存在安全问题.
32                 var conFlag = confirm("记录密码功能不宜在公共场所(如网吧等)使用,以防密码泄露.您确定要使用此功能吗?");
33                 if(conFlag){ //确认标志
34                     $("#remFlag").val("1");
35                 }else{
36                     $("input[type='checkbox']").removeAttr('checked');
37                     $("#remFlag").val("");
38                 }
39             }else{ //如果没选中设置remFlag为""
40                 $("#remFlag").val("");
41             }
42         }
43     </script>
复制代码

后端代码

复制代码
 1             String nameCookie = userName; //用户名
 2             String passCookie = passWord;//密码
 3             //记住用户名、密码功能(注意:cookie存放密码会存在安全隐患)
 4             String remFlag = req.getParameter("remFlag");
 5             if ("1".equals(remFlag)) { //"1"表示用户勾选记住密码
 6                 System.out.println("remFlag="+remFlag);
 7                 String loginInfo = nameCookie + "+" + passCookie;
 8                 Cookie userCookie = new Cookie("loginInfo", loginInfo);
 9                 userCookie.setMaxAge(30*24*60*60);   //存活期为一个月 30*24*60*60
10                 userCookie.setPath("/");
11                 resp.addCookie(userCookie);
12             }
复制代码

 

posted @   勤快的懒羊羊  阅读(323)  评论(0编辑  收藏  举报
编辑推荐:
· 时间轮在 Netty , Kafka 中的设计与实现
· MySQL 优化利器 SHOW PROFILE 的实现原理
· 在.NET Core中使用异步多线程高效率的处理大量数据
· 聊一聊 C#前台线程 如何阻塞程序退出
· 几种数据库优化技巧
阅读排行:
· 跟着 8.6k Star 的开源数据库,搞 RAG!
· .NET 9 中的 多级缓存 HybridCache
· 夜莺 v8 第一个版本来了,开始做有意思的功能了
· .NET 9 增强 OpenAPI 规范,不再内置swagger
· 推荐一个C#轻量级矢量图形库
点击右上角即可分享
微信分享提示