Java实现登录时cookie记住密码

44 篇文章 5 订阅
16 篇文章 0 订阅

前言

Java实现登录时cookie记住密码,下次登录不用重新输入密码,自动记住密码进行登录

编写代码

首先写一个页面登录表单,还有它对应的js

<%--
  Created by IntelliJ IDEA.
  User: wx_weiyihe
  Date: 2021/8/30
  Time: 15:50
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <form method="post" action="/cookie">
        用户名:<input type="text" name="username" id="username"><br>
        密码:<input type="password" name="password" id="password"><br>
        <input type="checkbox" name="remember" id="remember" value="true">记住密码<br>
        <input type="submit" value="登录">
    </form>
</body>
<script>
    var cookies=document.cookie.split(";");
    function getCK(mkey) {
        for(var i=0;i<cookies.length;i++){
            var kv=cookies[i].split("=");
            if(kv[0].trim()==mkey){
                return kv[1].trim();
            }
        }
        return  "";
    }
    window.onload=function(){
        var remember=getCK("remember");
        var username=getCK("username");
        var password=getCK("password");
        if(remember=='true'){
            var userNameInput=document.getElementById("username");
            userNameInput.value=username;
            var rememberInput=document.getElementById("remember");
            rememberInput.checked='checked';
            var passwordInput=document.getElementById("password");
            passwordInput.value=password;
        }
    }
</script>
</html>

java处理,用户名密码验证,判断是否勾选记住密码,并生成cookie,保存到客户端

@RequestMapping("/cookie")
    public void cookieTest(HttpServletRequest request, HttpServletResponse response) throws IOException {
        response.setHeader("content-type","text/html;charset=utf-8");
        String username=request.getParameter("username");
        String password=request.getParameter("password");
        String remember=request.getParameter("remember");
        //这里方便测试我把用户名密码写死了  用户名:sw 密码:123
        boolean success="sw".equals(username) && "123".equals(password);
        if(success){
            response.getWriter().write("登陆成功");
        }else{
            response.getWriter().write("登陆失败");
        }
        if("true".equals(remember) && success==true){
            Cookie ck1=new Cookie("remember", remember);
            ck1.setMaxAge(60*60);
            response.addCookie(ck1);
            Cookie ck2=new Cookie("username", username);
            ck1.setMaxAge(60*60);
            response.addCookie(ck2);
            Cookie ck3=new Cookie("password", password);
            ck1.setMaxAge(60*60);
            response.addCookie(ck3);
        }else{
            //清除cookie
            Cookie[] cks=request.getCookies();
            if(cks !=null){
                for (Cookie c : cks) {
                    c.setMaxAge(0);
                    response.addCookie(c);
                }
            }
        }
    }

查看效果

在这里插入图片描述
在这里插入图片描述

退出去重新刷新页面,密码自动绑定

在这里插入图片描述

总结

把密码存入cookie是有盗号风险的,为了解决这个问题,推荐将密码加密,这样就能保证密码的安全了。欢迎大家一起研究

  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小花皮猪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值