如何使用javascript使用localstorage进行登录

如何使用javascript使用localstorage进行登录,javascript,jquery,cordova,phonegap-build,Javascript,Jquery,Cordova,Phonegap Build,我已经编写了一个使用javascript登录的代码 function checkLogin() { if(localStorage.login=="true") { window.location.href = "index.html"; } else if(localStorage.login=="false") { window.location.href = "login.html"; } } 其中local

我已经编写了一个使用javascript登录的代码

function checkLogin()
{
    if(localStorage.login=="true")
    {
        window.location.href = "index.html";
    }
    else if(localStorage.login=="false")
    {
        window.location.href = "login.html";
    }
}
其中localStorage.login=“true”和“false”已从服务器动态分配

当我包含此代码时,页面将被循环重定向

为我提供以下方面的解决方案:

执行后如何删除/销毁用户定义的函数


如何在jquery

设置本地存储对象中,仅对一次执行用户定义的函数:

localStorage.setItem('objName','objValue');
localStorage.getItem('objName');
要获取本地存储对象,请执行以下操作:

localStorage.setItem('objName','objValue');
localStorage.getItem('objName');

无法从服务器设置本地存储。本地存储位于客户端浏览器中。 我猜您的代码是循环的,因为一旦加载loginpage,您就调用了checkLogin()函数。因为本地存储是空的。 这行代码将执行

window.location.href = "login.html";
然后再次加载页面并再次检查本地存储,页面为空

来解决这个问题。
您应该在登录页面之外调用您的函数

我认为最好的解决方案是仅从您想要重定向到登录的页面调用此函数,正如Emad Melad所说,在
login.html
页面之外调用此函数

如果您希望再次登录到login.php页面的用户在登录后被重定向到index.php,您可以尝试检测您所处的页面,如果是登录页面,则生成一个
If
,这样就不会执行该页面。应该是这样的:

function checkLogin()
{
    var url = window.location.pathname;
    var filename = url.substring(url.lastIndexOf('/')+1)

    if(localStorage.login=="true")
    {
        window.location.href = "index.html";
    }
    else if(localStorage.login=="false" && filename != 'login.html')
    {
        window.location.href = "login.html";
    }
}

但是,从我在代码中读到的内容来看,调用此函数的每个页面都会将您重定向到
index.html

通常,我在应用程序中所做的是仅在未登录时进行检查,如果是,则重定向到
login.html
。我要做的是,稍微修改一下您的函数:

    function checkLogin()
    {
        var url = window.location.pathname;
        var filename = url.substring(url.lastIndexOf('/')+1)

        if(localStorage.login=="true" && filename == 'login.html')
        {
            window.location.href = "index.html";
        }
        else if(localStorage.login=="false" && filename != 'login.html')
        {
            window.location.href = "login.html";
        }
    }
这样,如果您登录并且登录到login.php,您将只被重定向到
index.html
,另一种方式是,如果您未登录,您将只被重定向到
login.html
任何地方,除了
login.html

希望它能帮助你

localStorage.login=“true”和“false”已从服务器动态分配。无法从服务器设置本地存储。此处需要有关如何设置此值的更多详细信息。