我是新來角我建立一個登錄頁面,將成功登錄後重定向到用戶配置文件頁面,但我可以移動到下一個頁面,只需更改url地址而無需任何登錄,並通過單擊返回按鈕我來我的登錄頁面上 這裏是我的代碼只需在Angular Js中更改url地址,我就可以移動到我的Profile頁面而無需登錄。
user.js的控制器
$scope.login = function(data){
console.log('from form',data);
UserService.login(data)
.then(function(response){
$scope.serverMessage = '';
console.log('resp',response);
$location.path('/userprofile')
var user = response.user;
var sessionObj ={'user':response.user};
sessionObj.user.password = data.password;
$cookieStore.put('User',sessionObj);
console.log("--------",sessionObj);
}).catch(function(err){
//$scope.serverMessage = "Username and Password does not matches"; // for display server msg
$scope.error = err.message;
})
}
這裏的服務:
this.login = function(data){
var deferred = $q.defer();
console.log(baseUrl+'/api/user/login');
$http.post(baseUrl+'/api/user/login',data)
.success(function(response){
$rootScope.user = response;
deferred.resolve(response);
})
.error(function(err){
deferred.reject(err);
})
return deferred.promise;
}
這裏是App.js(路徑控制器)
angular
.module('a2BClientApp', [
'ngAnimate',
'ngCookies',
'ngResource',
'ngRoute',
'ngSanitize',
'ngTouch'
])
.config(function ($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'views/login.html',
controller: 'UserCtrl'
})
.when('/userprofile', {
templateUrl: 'views/userProfile.html',
controller: 'UserProfileCtrl',
access: { isFree: false }
})
.when('/forgotPassword', {
templateUrl: 'views/forgotPassword.html',
})
.when('/decline',{
templateUrl: 'views/login.html'
})
.otherwise({
redirectTo: '/'
});
});
您能否請幫我一下在哪裏應該寫條件,以便它不應該直接通過更改URL來轉到下一頁。
,所以我需要檢查isLoggedIn一個API?我們不能直接檢查並重新定向。用$ cookieStore檢查有什麼方法嗎? –
我不確定我是否收到您的問題。如果服務器沒有登錄,服務器應該能夠識別用戶並拒絕請求。這與客戶端代碼是分開的。在客戶端,您需要在用戶登錄時設置一個標誌並在需要時進行檢查。如果標誌沒有被設置,路線將不會加載。通申的回答也是一樣的。 – m59