我有一个网站,其中有3个不同的用户可以访问3个不同的文件夹。如果您访问www.thissite.com/folder1/index.html,它会检查用户是否已登录,如果没有,则会重定向到登录页面。
我使用localStorage这样做,因为我不想因为IOS问题而处理cookie和会话。
我有这个代码,它将一个默认对象分配给localStorage。它适用于单个文件夹。但是当我尝试在其他文件夹上使用它时,它会直接进入文件夹的提示页面,而不是调用登录页面。
如何在localStorage中为不同的文件夹使用类似的代码?如何为每个文件夹创建3个唯一的localStorage,以便在访问时仍然受到保护并要求登录?
这是我的代码:
的index.html
if(localStorage['data']){
var data=JSON.parse(localStorage['data']);
if(data.logedIn==1){
}else{
location.href="http://example.com/test/login.html";
}
}
var folder1 = "http://example.com/test/";
var defaultInfo=[
{folder:'folder1',count:1,pageLoadCount:1},
],
data=localStorage['data']? JSON.parse(localStorage['data']):defaultInfo;//load
console.log(data);
if(data.pageLoadCount==0){
location.href="http://example.com/test/login.html";
}
data.pageLoadCount++;
data.count=dir1.pageLoadCount;
localStorage['data']=JSON.stringify(data);
的login.html
<script type="text/javascript">
function test() {
var userName = document.Form1.id.value;
var password = document.Form1.pass.value;
if ((userName=="moulinex") && (password=="abc123")) {
window.open("http://example.com/test/index.html");
} else {
alert("Invalid ID or Password!")
}
}
</script>
我把它放在登录页面的下面
<script>
localStorage['data']=JSON.stringify({logedIn:1})
</script>
提前多多感谢。所有/任何答案都非常适合。
答案 0 :(得分:1)
LocalsStorage是名称/值字典。如果您只使用data
名称,则会覆盖其中的所有先前值。而是使用三个不同的名称(每个文件夹一个)并以这种方式设置其数据:
localStorage['folder1'] = JSON.strinfify({logedIn:1});
localStorage['folder2'] = JSON.strinfify({logedIn:0});
localStorage['folder3'] = JSON.strinfify({logedIn:1});
或者,您可以在localStorage中创建一个对象,然后以这种方式填充不同的文件夹。
localSotrage['data'] = JSON.stringify({
folder1: {logedIn: 1},
folder2: {logedIn: 0},
folder3: {logedIn: 1}
});