[英]Login route with cookies AngularJS
我正在使用angularjs登錄到我的網站。 我的代碼:HTML:
<input type="text" ng-model="username" placeholder="Username">
<input type="password" ng-model="password" placeholder="Password" >
<button type="submit" ng-click="login()">Sign in</button>
我的JS:
app.config(function($routeProvider) {
$routeProvider
.when('/', {
templateUrl: 'login.html'
})
.when('/dashboard', {
resolve: {
"check": function($location, $rootScope) {
if(!$rootScope.valueCookie) {
$location.path('/');
}
}
},
templateUrl: 'dashboard.html'
})
.otherwise({
redirectTo: '/'
});
});
$scope.login = function() {
$cookieStore.put('cookie', someSessionObj);
$rootScope.valueCookie = $cookieStore.get('cookie');
$location.path('/dashboard');
}
我想做的是解決Cookie。 當Cookie位於瀏覽器中時-單擊登錄后,然后進入“ dashboard.html”,刷新頁面之后仍然存在“ dashboard.html”。 我的代碼不起作用,如果我刷新“ dashboard.html”上的頁面,它將使我登錄。 預先感謝您的答復!
問題是
if(!$rootScope.valueCookie) {
$location.path('/');
}
每當刷新頁面時,您的$rootScope
將沒有valueCookie
。 要使其工作,請在運行函數中編寫以下代碼。
app.config(function() {
// your code
}).run(function($rootScope, $cookieStore){
$rootScope.valueCookie = $cookieStore.get('cookie');
});
在儀表板頁面上,您可以編寫ng-init
函數
Dashboard.html
<div ng-init="myFunction()">
</div>
在儀表板控制器中,您可以執行此操作
$scope.myFunction = function(){
$scope.valueCookie = $cookieStore.get('cookie');
}
因此,無論何時刷新儀表板頁面,都會調用init函數,並將cookie值存儲在$scope
變量中
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.