• java项目中登陆时记住密码


    1.在登陆的时候记住密码,不知自动登陆;

    2.登陆页面,填写用户名,密码,点击记住密码,下次进入登陆页面的时候,填写同样的用户名,密码自动填充(在不一次会话的情况下也就是说在不关闭浏览器的情况下);

    3.这样,可以有效的防止自动登录时的不安全性

    思路:

    1. 首先设置一个多选框,<input type="checkbox" onclick="remember()">记住密码
    2. 调用remember方法function remember(){1.设置一个remFlag,用来确定是否选中记住密码的多选框;2.获取checkbox的值;3.提醒用户是否要选中记住密码4.返回remFlag}
    3. 当调用login的方法时,获取remFlag的值,将remFlag作为参数传递给后台;
    4. 判断remFlag是否为1,如果为1,说明选中记住密码的按钮,之后(1.获取用户名密码,2创建cookies,3.将用户名密码作为值赋给cookies中,传递给前台)

      5. 在$(function).ready({})的方法中获取cookies中的用户名密码,进行使用blur的方式进行填充

    代码如下:

      1.

    <div style="float:right;padding-right:38%;display:true" >
                        <div style="float: left;margin-top:3px;margin-right:2px;">
                            <font>记住密码</font>
                        </div>
                        <div style="float: left;">
                            <input name="form-field-checkbox" id="saveid" type="checkbox"
                                onclick="remember();" style="padding-top:0px;" />
                        </div>
                    </div>

      2.

    function remember(){
                var remFlag = $("input[type='checkbox']").is(':checked');
                if(remFlag==true){ //如果选中设置remFlag为1
                    //cookie存用户名和密码,回显的是真实的用户名和密码,存在安全问题.
                    var conFlag = confirm("记录密码功能不宜在公共场所(如网吧等)使用,以防密码泄露.您确定要使用此功能吗?");
                    if(conFlag){ //确认标志
                        $("#remFlag").val("1");
                    }else{
                        $("input[type='checkbox']").removeAttr('checked');
                        $("#remFlag").val("");
                    }
                }else{ //如果没选中设置remFlag为""
                    $("#remFlag").val("");
                }
            }
            

      3.

    function login(){
                if(check()){
                    
                    var userName = $("#userName").val();
                    var password = $("#password").val();
                    var remFlag = $("#remFlag").val();
                    $.ajax({
                        type: "POST",
                        url: 'login/userLogin.action',
                        data: {userName:userName,password:password,remFlag:remFlag},
                        dataType:'json',
                        cache: false,
                        success: function(data){
                            
                                
                                window.location.href="index.jsp?no-cache=" + Math.random();
                            
                    
                }
            }
        

      4.

        @RequestMapping("/userLogin")
        public void doLogin(HttpServletRequest request,HttpServletResponse response){
            String msg = "";
            String userName = request.getParameter("userName");  
            request.getSession().setAttribute("userName",userName);
            String password = request.getParameter("password"); 
            //记住用户名、密码功能(注意:cookie存放密码会存在安全隐患)
            String remFlag = request.getParameter("remFlag");
            if("1".equals(remFlag)){ //"1"表示用户勾选记住密码
                /*String cookieUserName = Utils.encrypt(name);
                String cookiePwd = Utils.encrypt(passWord);
                String loginInfo = cookieUserName+","+cookiePwd;*/
                String loginInfo = userName+","+password;
                Cookie userCookie=new Cookie("loginInfo",loginInfo); 
    
                userCookie.setMaxAge(-1);   //存活期为关闭浏览器cookie消失
               userCookie.setPath("/");
                response.addCookie(userCookie); 
               
            }
            Subject subject = SecurityUtils.getSubject();
            String pwd = new Md5Hash(password).toHex();
            UsernamePasswordToken token = new UsernamePasswordToken(userName, pwd);  
            JSONObject job = new JSONObject();
                subject.login(token);
           
        }

      5.

    $(document).ready(function() {
                changeCode();
                $("#codeImg").bind("click", changeCode);
                 //记住密码功能
                var str = response.getCookies("loginInfo");
                str = str.substring(1,str.length-1);
                var username = str.split(",")[0];
                var password = str.split(",")[1];
                //自动填充用户名和密码
              /*   $("#userName").val(username);
                $("#password").val(password); */
                $("#userName").blur(function(){
                    var usrName=$("#userName").val();
                    if(username==usrName){
                        $("#password").val(password);
                    }else{
                        $("#password").val('');
                    }
                });
            });
  • 相关阅读:
    模式识别: 线性分类器
    Graph Cuts学习笔记2014.5.16----1
    图像处理程序框架—MFC相关知识点
    图像处理程序框架—MFC相关知识点
    【ML】人脸识别
    【视觉】两个赞的开发文档
    【调研】在总体为n的情况下,多少样本有代表性?
    【ubuntu】upload files
    【git】git pull
    【spark】with mongodb
  • 原文地址:https://www.cnblogs.com/itcx1213/p/6991417.html
Copyright © 2020-2023  润新知