使用cookies AngularJS登录路由

使用cookies AngularJS登录路由,angularjs,cookies,Angularjs,Cookies,我正在用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<

我正在用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>

我想做的是解决问题。当Cookie在浏览器中时-单击“登录”后,我们在dashboard.html中,刷新页面后仍然显示dashboard.html。我的代码不工作,如果我刷新dashboard.html上的页面,它会将我移动到登录。感谢您提前回复

在仪表板页面上,您可以编写ng init函数

Dashboard.html

<div ng-init="myFunction()">


</div>
因此,每当您刷新仪表板页面时,都会调用init函数,cookies值将存储在$scope变量中,问题在于

if(!$rootScope.valueCookie) {
     $location.path('/');
}
无论何时刷新页面,$rootScope都不会有valueCookie。 要使其工作,请在run函数中编写以下代码

app.config(function() {
   // your code
}).run(function($rootScope, $cookieStore){
   $rootScope.valueCookie = $cookieStore.get('cookie');
});

有问题的cookie是否设置了httponly标志?如果是这样,您就无法使用javascript读取它。@Nikolajdallarsen可能在刷新页面后,$rootScope也被重置。你有办法解决这个问题吗?或者用cookies登录。我能想到的最好建议是只让后端处理cookies。$cookieStore不受欢迎,请改用$cookies
if(!$rootScope.valueCookie) {
     $location.path('/');
}
app.config(function() {
   // your code
}).run(function($rootScope, $cookieStore){
   $rootScope.valueCookie = $cookieStore.get('cookie');
});