如何解决我的本地存储登录问题?

Posted

技术标签:

【中文标题】如何解决我的本地存储登录问题?【英文标题】:How to fix my login issue with local storage? 【发布时间】:2017-04-30 20:29:47 【问题描述】:

基本上我有 2 个文件... register.html 和 login.js.... 我能够将用户的注册详细信息存储到本地存储中,然后将其解析为数组中的对象...。我需要登录正确(当用户和密码匹配时,警告框表示登录成功,然后php文件将重定向用户,如果不匹配,警告框将单独指示),然后第二个警告框表示您已成功登录,然后它不会重定向我,因为当用户和传递匹配本地存储时,PHP 文件会这样做......有什么线索吗??

【问题讨论】:

你能用这个链接检查***.com/a/38328193/6572922 对不起,我还没有达到可以区分差异并与我的代码进行比较以与我的代码产生差异的水平......我只需要支持更改我的代码以使其正确登录跨度> 【参考方案1】:

您只是没有正确迭代凭据,您必须等到确定当前登录凭据不等于任何存储的凭据,因此您必须将这部分代码从 for 循环中取出:

alert('Invalid Username or Password! Please try again.');
event.preventDefault();
window.location="Login.html"; 

试试这个代码来验证登录:

function validlogin(event) 
    var username = document.getElementById('username').value;
    var password = document.getElementById('password').value;
var entriesJSON = localStorage.getItem('allEntries');
if (!entriesJSON) 
    event.preventDefault();
    alert("Nothing stored!");
    return;

var allEntries = JSON.parse(entriesJSON);
var isCorrectCredentials=false;
for (var i = 0; i < allEntries.length; i++) 
    var entry = allEntries[i];
    var storedUserName = entry.user;
    var storedPassWord = entry.pass;

    var storedEmailAddress = entry.email;
    if (username == storedUserName && password == storedPassWord) 
        isCorrectCredentials=true;
        alert("Successfully logged in!");
        return;
     
   if(!isCorrectCredentials)
        alert('Invalid Username or Password! Please try again.');
        event.preventDefault();
        window.location="Login.html";     
    

如果当前用户名和密码正确,您将登录,并使用以下命令通知其余代码:

isCorrectCredentials=true;

登录信息为真并且您已成功登录。 如果登录信息不正确,应该执行的部分代码将最多执行1次。

【讨论】:

哇,它成功了,你能简要解释一下你必须做什么才能让它工作,顺便说一句.... Shokran :) 我将编辑答案以解释问题所在! , 3afwan ;) 谢谢habibi,真的很感激

以上是关于如何解决我的本地存储登录问题?的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Token 保存到本地存储?

如何使用 Nuxt.js 将数据存储到本地存储

JavaScript-HTML5 使用本地存储登录,安全吗?

本地存储和云存储之间的区别

如何在刷新页面上存储在本地存储中的 reactjs 中使用 JWT 进行身份验证?

不使用观察者无法在本地存储中存储用户详细信息(Firebase和Polymer身份验证)