• 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             }
  • 相关阅读:
    项目实现多数据库支持 规格严格
    KeyTool 4096 RSA JDK1.5 1.4 规格严格
    KeyTool用法 规格严格
    Tomcat ssl配置 规格严格
    redmine install 规格严格
    zlib1.2.5的编译 规格严格
    Class unload 规格严格
    Ubuntu 8.10 “Intrepid Ibex” 发布时间表确定
    22项Windows或Mac不能而Linux可以的事
    英语谚语
  • 原文地址:https://www.cnblogs.com/lwl80/p/15931443.html
Copyright © 2020-2023  润新知