JavaScript每天提示一次

时间:2018-01-08 18:20:17

标签: javascript passwords prompt

嘿我想制作一个每天出现一次的JavaScript提示。

我的实际代码是:

<script>
var pass; var pass1="mypassword";
password=prompt('Please enter your password to view this page!',' ');
if (password==pass1)
    alert('Password Correct! Click OK to enter!');
else
{
window.location="http://mywebsite.com";
}
</script>

使用此代码,每次刷新时都会出现提示

1 个答案:

答案 0 :(得分:1)

您可以设置一天后过期的Cookie:https://www.w3schools.com/js/js_cookies.asp

以下是修改代码的示例:

function getCookie(cname) {
    var name = cname + "=";
    var decodedCookie = decodeURIComponent(document.cookie);
    var ca = decodedCookie.split(';');
    for(var i = 0; i <ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') {
            c = c.substring(1);
        }
        if (c.indexOf(name) == 0) {
            return c.substring(name.length, c.length);
        }
    }
    return "";
}

function setCookie(cname, cvalue, exdays) {
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires="+ d.toUTCString();
    document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}

function isLoggedIn() {
    if(getCookie("isLoggedIn") === "true") {
        return true;
    } else {
        return false;
    }
}

var pass1 = "mypassword";

if(isLoggedIn() === false) {
      var password = prompt('Please enter your password to view this page!',' ');
    if(password === pass1) {
        alert('Password Correct! Click OK to enter!');
        setCookie("isLoggedIn", "true", 1);
    } else {
        window.location.reload;
    }
}

请注意,以这种方式存储正确的密码是不安全的,因为任何人都可以看到源代码并查看正确的密码,更安全的方式是做一些像Nodejs应用程序这样的服务器端。同样在这个实现中,任何人都可以将isLoggedIn cookie设置为true并通过它来获取,更安全的方法是将一些令牌设置为服务器可以验证的cookie,以查看它是否已过期,或者是否进入Nodejs路由,有更多的资源来进行安全认证