javascript – 如何在Angular中存储用户会话?

我刚刚开始使用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的文档

记住,敏感会话信息应该被加密.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...