我正在使用Ionic框架构建移动应用程序,我需要能够缓存用户的登录名,以便他们不必每次都登录。
我读了一个建议使用HTML5 localStorage的解决方案。但是我目前不确定如何实现它。
这是我的用户登录变量的样子:
credentials Object {username: "leon", password: "sushi"}
我的console.logs打印如下:
// 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('key');。
记住一些东西,localStorage
只保存字符串,您必须JSON.stringify()
用于保存对象yJSON.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()
来吸引用户
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句