嘿,我正在离子1中登录...我无法将我的身份验证保存在本地存储上,在我执行此本地存储之前,我使用了会话存储,但每次人们都想打开我的应用程序再次,它应该再次登录..
这是我的控制员。
.controller('login', function($scope, $http, $ionicPopup, $state, $ionicHistory, $localStorage, $window) {
// localhost
var baseUrl = 'http://developing/alhikmah_api/v1/mobile/auth/login';
$scope.showAlert = function(msg) {
$ionicPopup.alert({
title: msg.title,
template: msg.message,
okText: 'Baik',
okType: 'button-positive'
})
}
if ($localStorage.getItem('nis') !== null && $localStorage.getItem('token') !== null) {
$scope.showAlert({
title: "Pesan",
message: "Selamat Datang Kembali :)"
});
$state.go('tab.home');
}
$scope.login = function() {
if (!$scope.login.nis) {
$scope.showAlert({
title: "Informasi",
message: "Nomor Induk Santri Harap di Isi !"
})
} else if (!$scope.login.pass) {
$scope.showAlert({
title: "Informasi",
message: "password mohon diisi"
})
} else {
$http.post(baseUrl, {
username: $scope.login.nis,
password: $scope.login.pass,
role: "santri"
}).success(function(data) {
console.log(data);
if (data.success == false) {
$scope.showAlert({
title: "Information",
message: data.message
})
$scope.login.nis = '';
$scope.login.pass = '';
} else {
$localStorage.setItem('id', data.data[0].id);
$localStorage.setItem('nis', data.data[0].username);
$localStorage.setItem('token', data.token);
$scope.showAlert({
title: "Information",
message: data.message
})
$state.go('tab.home');
}
});
}
}
})
如果我使用sessionstorage而不是localstorage,一切正常。但我想要的只是让人们不再登录我的应用程序。
感谢
答案 0 :(得分:1)
我假设您指的是 ngStorage
模块
像这样使用 ngStorage js文件(确保在加载angularjs后加载它,注意脚本标记的顺序):
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.1/angular.min.js"></script>
<script type="text/javascript" src="https://cdn.jsdelivr.net/ngstorage/0.3.6/ngStorage.min.js>
然后您可以在控制器中使用$ localStorage,如果不使用 $window.localStorage