Saya memiliki aplikasi AngularJS yang dibuat dengan menggunakan yeoman, grunt dan bower.
Saya memiliki halaman login yang memiliki pengontrol yang memeriksa otentikasi. Jika kredensial benar, saya mengalihkan ke beranda.
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";
}
}
});
Di halaman rumah saya miliki
<span class="user-info">
<small>Welcome,</small>
{{user.name}}
</span>
<span class="logout"><a href="" ng-click="logoutUser()">Logout</a></span>
Dalam loginController
, saya memeriksa info masuk dan jika berhasil, saya menetapkan objek pengguna di pabrik layanan. Saya tidak tahu apakah ini benar atau tidak.
Yang saya butuhkan adalah, Ketika pengguna login, Ini menetapkan beberapa nilai dalam objek pengguna sehingga semua halaman lain bisa mendapatkan nilai itu.
Setiap kali terjadi perubahan rute, controller harus memeriksa apakah pengguna masuk atau tidak. Jika tidak, harus dialihkan ke halaman login. Juga, jika pengguna sudah masuk dan kembali ke halaman, itu harus pergi ke halaman rumah. Pengontrol juga harus memeriksa kredensial di semua rute.
Saya pernah mendengar tentang cookies, tetapi saya tidak tahu bagaimana menggunakannya.
Banyak contoh yang saya lihat tidak begitu jelas dan mereka menggunakan semacam peran akses atau sesuatu. Saya tidak menginginkan itu. Saya hanya ingin filter login. Adakah yang bisa memberi saya ide?