java项目中登陆时记住密码

mac2022-06-30  96

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

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

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

思路:

首先设置一个多选框,<input type="checkbox" οnclick="remember()">记住密码调用remember方法function remember(){1.设置一个remFlag,用来确定是否选中记住密码的多选框;2.获取checkbox的值;3.提醒用户是否要选中记住密码4.返回remFlag}当调用login的方法时,获取remFlag的值,将remFlag作为参数传递给后台;判断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

相关资源:JAVA上百实例源码以及开源项目
最新回复(0)