こんにちは、春のセキュリティを設定した後、私のためにログインが動作します。しかし、私はanypageをリフレッシュするとログインページにリダイレクトされます。どのように私はこれを取り除くことができます。 は、ここに私のコードangularjs私のページをリフレッシュすると、私はログインページにリダイレクトされます
config.jsの
'use strict';
var app = angular.module('MyApp', [ 'ngResource', 'ngRoute',
'myAppControllers', 'ngAnimate', 'ui.bootstrap', 'ngCookies' ]);
app.config(function($routeProvider) {
$routeProvider.when('/products/:idCat', {
templateUrl : '../views/partials/products.html',
controller : 'ProductsController'
}).when('/products', {
templateUrl : '../views/partials/allProducts.html',
controller : 'ProductsController'
}).when('/supprimer', {
templateUrl : '../views/partials/delete.html',
}).when('/update', {
templateUrl : '../views/partials/update.html',
controller : 'UserController'
}).when('/client', {
templateUrl : '../views/partials/client.html',
controller : 'ClientController'
}).when('/agences', {
templateUrl : '../views/partials/agences.html',
controller : 'MapController'
}).when('/login', {
templateUrl : '../views/partials/login.html',
controller : 'mainController'
}).when('/', {
templateUrl : '../views/partials/Home.html',
})
$routeProvider.otherwise('/');
});
app.run(function($route, $rootScope, $http, $location, $cookieStore,
$anchorScroll) {
$rootScope.authenticated = false;
$rootScope.$on('$routeChangeStart', function() {
var originalPath = $location.url();
if ($rootScope.authenticated == false) {
$location.path('/login');
} else {
$rootScope.redirectUrl = angular.copy($location.url());
var user = $cookieStore.get('user');
if (user !== undefined) {
$rootScope.user = user;
$http.defaults.headers.common['X-Auth-Token'] = user.token;
$location.url(originalPath);}})
});
私は
myAppControllers
.controller(
'mainController',
function($scope, $rootScope, loginService, ProductService,
$location, $cookies, $cookieStore, $http) {
$rootScope.salesAgent = true;
$scope.loggedIn = false;
$rootScope.hasRole = function(role) {
if ($rootScope.user === undefined) {
return false;
}
if ($rootScope.user.authorities === undefined) {
return false;
}
for (var i = 0; i < $rootScope.user.authorities.length; i++) {
if ($rootScope.user.authorities[i].authority == role)
return true;
}
return false;
};
$scope.logout = function() {
console.log("Testtttttttttt");
delete $rootScope.user;
delete $http.defaults.headers.common['X-Auth-Token'];
$cookieStore.remove('user');
$location.url("/login");
};
$scope.authenticate = function() {
loginService
.authenticate($scope.username,
$scope.password)
.then(
function(user) {
$rootScope.user = user;
$http.defaults.headers.common['X-Auth-Token'] = user.token;
$cookieStore.put('user',
user);
if ($rootScope.redirectUrl != null
&& $rootScope.redirectUrl
.indexOf('/') == -1)
$location
.url($rootScope.redirectUrl);
else {
$rootScope.authenticated = true;
$location.path("/");
}
$rootScope.redirectUrl = null;
$rootScope.redirectStatus = null;
}),
function err(data) {
if ($rootScope.redirectStatus == 401)
}
};});
私はあなたの助けのために喜んでいただけることでしょう認証サービスのための私のコントローラANGコールを持っている私のapp.jsです!クッキーではなく、角度1.2以下、またはのためのその使用の$は、cookiestoreの、それが無効になっているリフレッシュ後run
app.run(function($route, $rootScope, $http, $location, $cookieStore, $anchorScroll) {
var user = $cookieStore.get('user');
if (user !== undefined) {
// set up X- header and other variables here
あなたのユーザー情報は '$ rootScope'に保存されているようです。ページをリフレッシュすると、ページが空になります。 –
あなたの 'app.run()'の中でなぜ '$ rootScope.authenticated = false;'をやっていますか? –
ログインが成功しても常に同じ問題が発生したら私はそれを無視してコントローラに入れました – yeddez