javascript - 如何使用 localStorage 存储和取回用户登录信息?

标签 javascript html mobile ionic-framework local-storage

我正在使用 Ionic framework 构建移动应用程序,我需要能够缓存用户的登录信息,这样他们就不必每次都登录。

read a solution建议使用 HTML5 localStorage .但是我目前不确定如何实现它。

这是我的用户登录变量的样子:

凭证对象{用户名:“leon”,密码:“sushi”}

下面是我的 console.logs 打印的内容:

enter image description here

我的登录 Controller :

// The Modernizr Code
////////////////////////////////////////////////////////////////////////////
if (Modernizr.localstorage) {
    // window.localStorage is available!
    console.log('localStorage is available!');
    console.log('creds',creds);

} else {
    console.log('no native support for HTML5 storage :(');
    // no native support for HTML5 storage :(
    // maybe try dojox.storage or a third-party solution
}

// The Login function
////////////////////////////////////////////////////////////////////////////
function login(credentials) {
    console.log('credentials',credentials);
    creds = localStorage["credentials"];
    console.log('creds',creds);
    AuthService.login(credentials).then(function (user) {
        $rootScope.$broadcast(AUTH_EVENTS.loginSuccess);

        if (user.password_reset) {
            $location.path('/password');
        }
        else {
            AuthService.saveUser(user);
            $location.path('/main');
        }

    }).catch(function () {
        vm.errorModalClosed = false;
        vm.loginError       = true;     
        PopupFactory.saveConfig("failure", "The username and password you entered don’t match.", true);
        $rootScope.$emit('open.popup');
    });
}

最佳答案

localStorage 在浏览器中是全局的,你可以保存数据然后在任何你想要的地方检索,你添加这样的项目 localStorage.setItem('key', 'value') 并获取 localStorage.getItem( '键');

记住一点,localStorage 只保存字符串,你必须使用 JSON.stringify() 来保存一个对象 y JSON.parse再次解析为json

在您保存用户的那一刻的具体示例中

AuthService.saveUser(user);
localStorage.setItem('user', JSON.stringify(user));
$location.path('/main');

并在其他地方检索

var user = JSON.parse(localStorage.getItem('user'));

您也可以在 AuthServer.saveUser(user) 中执行此操作并添加一些方法,如 AuthServer.getUser() 以获取用户

关于javascript - 如何使用 localStorage 存储和取回用户登录信息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34094306/

相关文章:

javascript - 如何从表格的行中收集文本?

javascript - 我可以在彼此之上绘制两个形状并具有组合的描边/轮廓吗?

java - 多平台 libGDX 应用程序中的 Assets 行为

flutter - 如何从 flutter 移动应用程序控制 Raspberry pi?

javascript - 尝试将图像添加到列表中

javascript - 如何在 minio 上的单个请求中统计多个对象

javascript - 将 HTML 元素分隔成具有适当间距的列(JQuery 和 CSS)

jquery - CakePHP - jQuery Mobile 返回包含单词 "Undefined"的空页面

javascript - 稍微修改一下,将数组拆分为 block

javascript - 如何在jsp文件中使用javascript添加请求参数