У мене є додаток AngularJS, створений за допомогою yeoman, grunt та bower.
У мене на сторінці входу є контролер, який перевіряє автентифікацію. Якщо облікові дані правильні, я перенаправляю на головну сторінку.
app.js
'use strict';
//Define Routing for app
angular.module('myApp', []).config(['$routeProvider', '$locationProvider',
function($routeProvider,$locationProvider) {
$routeProvider
.when('/login', {
templateUrl: 'login.html',
controller: 'LoginController'
})
.when('/register', {
templateUrl: 'register.html',
controller: 'RegisterController'
})
.when('/forgotPassword', {
templateUrl: 'forgotpassword.html',
controller: 'forgotController'
})
.when('/home', {
templateUrl: 'views/home.html',
controller: 'homeController'
})
.otherwise({
redirectTo: '/login'
});
// $locationProvider.html5Mode(true); //Remove the '#' from URL.
}]);
angular.module('myApp').factory("page", function($rootScope){
var page={};
var user={};
page.setPage=function(title,bodyClass){
$rootScope.pageTitle = title;
$rootScope.bodylayout=bodyClass;
};
page.setUser=function(user){
$rootScope.user=user;
}
return page;
});
LoginControler.js
'use strict';
angular.module('myApp').controller('LoginController', function($scope, $location, $window,page) {
page.setPage("Login","login-layout");
$scope.user = {};
$scope.loginUser=function()
{
var username=$scope.user.name;
var password=$scope.user.password;
if(username=="admin" && password=="admin123")
{
page.setUser($scope.user);
$location.path( "/home" );
}
else
{
$scope.message="Error";
$scope.messagecolor="alert alert-danger";
}
}
});
На домашній сторінці у мене є
<span class="user-info">
<small>Welcome,</small>
{{user.name}}
</span>
<span class="logout"><a href="" ng-click="logoutUser()">Logout</a></span>
У розділі loginController
я перевіряю інформацію про вхід, і якщо вона успішна, я встановлюю об’єкт користувача на фабриці обслуговування. Я не знаю, правильно це чи ні.
Що мені потрібно, коли користувач увійшов у систему, він встановлює певне значення в користувальницькому об’єкті, щоб усі інші сторінки могли отримати це значення.
Щоразу, коли відбуваються зміни маршруту, контролер повинен перевіряти, чи користувач увійшов чи ні. Якщо ні, то він повинен перенаправитись на сторінку входу. Крім того, якщо користувач вже увійшов у систему та повернувся на сторінку, він повинен перейти на головну сторінку. Контролер також повинен перевірити облікові дані на всіх маршрутах.
Я чув про ng-cookies, але не знаю, як ними користуватися.
Багато прикладів, які я бачив, були не дуже зрозумілими, і вони використовують якісь ролі доступу чи щось таке. Я цього не хочу. Я хочу лише фільтр для входу. Може хтось дасть мені кілька ідей?