У меня есть пользовательская страница входа в angularjs. Когда введено имя пользователя и пароль, создается URL-адрес и этот url возвращает идентификатор (например, число). На основе этого идентификатора возвращается страница tab.html (эта страница отличается для разных клиентов). Теперь проблема iam сталкивается, когда нажата кнопка выхода из системы, отображается страница входа в систему, но опция возврата обратно доступна в браузере, что означает, что даже если пользователь выйдет из системы, он может нажать на стрелку назад, чтобы перейти на предыдущую конфиденциальную страницу.Создание локального хранилища в AngularJS
Вот код, как называются состояния:
var wc = angular.module('wc', ['ui.router', 'am.multiselect', 'angularUtils.directives.dirPagination', 'ui.bootstrap', 'ui.bootstrap.datetimepicker', 'LocalStorageModule']);
wc.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise('/login');
$stateProvider
.state('login', {
url: '/login',
templateUrl: 'views/login.html',
controller: 'LoginCtrl'
})
.state('logout', {
cache: false,
url: '/logout',
templateUrl: 'views/logout.html',
controller: 'LogoutCtrl'
})
.state('tab', {
url: '/tab/:id',
templateUrl: 'views/tab.html'
});
Ниже приведен код для выхода из сеанса и входа в систему контроллеров:
wc.controller('LogoutCtrl', function ($scope, $http, $location) {
$location.path('/tab');
});
wc.controller('LoginCtrl', function ($scope, $http) {
$scope.submit = function() {
$http.get("urlUserName=" + $scope.person.firstName + "&Password=" + $scope.person.pswd)//Sample Url//
.success(function (data, status, headers, config) {
debugger
$scope.tableData = data;
console.log(data)
if (data == 'Exception') {
window.alert('You have entered wrong username or password');
}
else $state.go('tab', { id: data.Table[0].UserId });
})
}});
Ниже приведен код формы в странице входа:
<form ng-submit=submit()>
<div class="input-container">
<input type="text" id="Username" ng-model="person.firstName" required="required" />
<label for="Username">Username</label>
<div class="bar"></div>
</div>
<div class="input-container">
<input type="password" id="Password" ng-model="person.pswd" required="required" />
<label for="Password">Password</label>
<div class="bar"></div>
</div>
<div class="submit">
<input type="submit" value="LOGIN">
</div>
</form>
Я понял, что мне нужно будет использовать localStorage и добавить его в код, как показано ниже:
<script src="bower_components/js/angular-local-storage.min.js"></script>
var myApp = angular.module('myApp', ['LocalStorageModule']);
myApp.controller('LoginCtrl', function($scope, localStorageService) {
var lsKeys = localStorageService.keys();//to show all values
function submit(key, val) {
return localStorageService.set(key, val); }
function removeItem(key) {
return localStorageService.remove(key); }
});
Но вышеуказанный код не работает. Как я могу использовать локальное хранилище здесь? Будем благодарны, если кто-нибудь может мне помочь!