使用cookies AngularJS登录路由
我正在用angularjs登录我的网站。我的代码:HTML:使用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<
<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');
});