前端实现记住密码功能

发布于 2022-09-13 01:09:26 字数 1327 浏览 11 评论 0

需求描述,当前有一个应用导航的app地址,点击这个地址会302到一个统一认证的平台,输入账号密码后进行登录认证,然后再重定向到这个app;需要加一个记住密码并自动登录的功能;

初次登录,手动输入密码,登陆成功,下次再登lu的时候就会直接把上一次成功的账号密码直接代填到页面,然后自动登录;项目用的是前端的jsp,目前我也是从前端来改这个功能,代码如下,但总感觉怪怪的:
1.在登录接口的成功的回调里面直接把账号密码以明文的方式存储到localStorage里面,用空格作为分隔符,明文的形式存储;

 var password=    document.getElementById("j_password").value;
            var username=    document.getElementById("j_username").value
                localStorage.setItem("USANDPD",username+" "+password);

2.在及在登录页面的时候判断localStorage是否有值,如果有的话则自动代填,并处罚登录按钮的点击事件.

    window.onload = function () {
        //  如果存在就复现 且自动登录

        if (localStorage.getItem("USANDPD")) {
            var uandp = localStorage.getItem("USANDPD");
            var usname = uandp.split(" ")[0];
            var password = uandp.split(" ")[1]
            document.getElementById("j_username").value = usname;
            document.getElementById("j_password").value = password;
            // 自动登录
        }
        setTimeout(function () {
            document.getElementById("signButton").click();
        }, 0)
}

效果是可以达到自动登录的效果,不过有几个小问题:

1.这样的话,在用户注销的时候回到登录页,会再次判断localStorage的值,然后又会重新登录,我的处理方案是注销的时候删除localStrorage的值

2.账号密码直接明文存储在localStorage不安全

3.自动登录的状态时依赖于localStorage,有局限性

不知道大家对记住密码这个功能是怎么理解实现的

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

逆流 2022-09-20 01:09:26

不要直接记密码,localStorage 不安全,所以内容都看得到(如下图)。像密码这么隐私的东西记 localStorage 里太不安全了。

image.png

一般所谓的“记住密码”,其实并不是真正的记住密码,而是通过一系列的手段,让服务器能意识到你是登录过的,而且没过期(比如用 Token)。

一场信仰旅途 2022-09-20 01:09:26

一般都是用 autocomplete 实现的,启用现代浏览器自带的记住账号密码功能。

靠 JS 自己实现一个,还真没见过……

什么?你说 IE 不支持 autocomplete?让 IE 去死吧!

烟─花易冷 2022-09-20 01:09:26

1.记住密码不等于自动登录,我们通常只做记住密码,如果需求是要实现自动登录,那就是需要注销的时候注意清除。

2.本地存储是不是安全这个问题,你的电脑难道会给别人用? 给别人用还记住密码+自动登录,那你这跟本地存储也没啥关系了。 如果为了防止别人偷瞄到,做一个简单的base64也是可行的,如果别人可以拿到你的浏览器慢慢琢磨,啥都白搭。

3.你登录还得依赖cookie呢,对于浏览器localstorage的依赖算不得问题。

素手挽清风 2022-09-20 01:09:26

前端不能存储明文, 存储密文也是不可行的

正确的是后端收集终端特征信息, 返回一个 限定终端, 限定有效期限 的令牌

前端用这个令牌保持登录状态, 呃 和sessionid差不多了

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文