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('');
                }
            });
        });
原文地址:https://www.cnblogs.com/itcx1213/p/6991417.html