我刚刚开始使用AngularJS,我试图在AngularApp上存储用户会话.
提交用户名和密码工作的第一步.
之后,我将该服务中检索的用户名存储在$rootScope中.
下一页可显示用户名.
但是刷新后,$rootScope为空.
我试图做一个尽可能简单的认证系统.
myApp.controller('loginController',['$scope','$rootScope','$location','AuthService','$route',function ($scope,$rootScope,$location,AuthService,$route) { $scope.login = function (credentials) { AuthService.login(credentials).then(function (response) { if(response.data == "0"){ alert("Identifiant ou mot de passe incorrect"); } else { // response.data is the JSON below $rootScope.credentials = response.data; $location.path("/"); } }); }; }]);
AuthService.login()生成$http请求.
JSON
{user_id: 1,user_name: "u1",user_display_name: "Steffi"}
HTML:
<div>Welcome {{ credentials.user_display_name }}!</div>
我尝试了很多教程,但是我无法使会议工作.
我已经使用过UserApp,但对我来说并不好.我想创建我自己的简单身份验证.
解决方法
当页面刷新时,$rootScope将始终重置,因为它是单页应用程序.
您需要使用持久客户端的东西,例如cookie或sessionStorage(因为它们都有到期时间).看看$cookieStore:https://docs.angularjs.org/api/ngCookies/service/$cookieStore的文档
记住,敏感会话信息应该被加密.