Yeoman, grunt ve bower kullanılarak oluşturulmuş bir AngularJS uygulamam var.
Kimlik doğrulamasını kontrol eden bir denetleyiciye sahip bir oturum açma sayfam var. Kimlik bilgileri doğruysa ana sayfaya yeniden yönlendiriyorum.
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";
}
}
});
Ana sayfada var
<span class="user-info">
<small>Welcome,</small>
{{user.name}}
</span>
<span class="logout"><a href="" ng-click="logoutUser()">Logout</a></span>
İçinde loginController
giriş bilgilerini kontrol ediyorum ve başarılı olursa servis fabrikasında kullanıcı nesnesini ayarlıyorum. Bunun doğru olup olmadığını bilmiyorum.
İhtiyacım olan şey, kullanıcı oturum açtığında, diğer tüm sayfaların bu değeri alabilmesi için kullanıcı nesnesinde bir değer belirler.
Herhangi bir rota değişikliği olduğunda, kontrolör kullanıcının oturum açıp açmadığını kontrol etmelidir. Değilse, giriş sayfasına yeniden yönlendirmelidir. Ayrıca, kullanıcı zaten oturum açtıysa ve sayfaya geri döndüyse, ana sayfaya gitmesi gerekir. Denetleyici ayrıca tüm yollardaki kimlik bilgilerini kontrol etmelidir.
Ng-çerezlerini duydum ama nasıl kullanacağımı bilmiyorum.
Gördüğüm örneklerin çoğu çok net değildi ve bir tür erişim rolleri veya başka bir şey kullanıyorlar. Bunu istemiyorum Sadece bir giriş filtresi istiyorum. Biri bana fikir verebilir mi?