Angularjs AngjularJs当前用户解决方案

Angularjs AngjularJs当前用户解决方案,angularjs,login,angular-ui-router,cookiestore,Angularjs,Login,Angular Ui Router,Cookiestore,我对AngularJs是新手。我的问题是用户登录后如何存储当前用户数据 我遇到了很多建议使用服务的解决方案,并将服务注入控制器。大概是这样的: customer.factory('service', function(){ var auth = {}; auth.currentUser = null; auth.setCurrentUser = function(data){ auth.currentUser = data; };

我对AngularJs是新手。我的问题是用户登录后如何存储当前用户数据

我遇到了很多建议使用服务的解决方案,并将服务注入控制器。大概是这样的:

    customer.factory('service', function(){
      var auth = {};
      auth.currentUser = null;
      auth.setCurrentUser = function(data){
      auth.currentUser = data;
     };
     return auth;
     })
这对我来说非常有效,直到我点击浏览器的刷新按钮,Javascript变量中存储的所有信息都丢失了

要解决这个问题,我必须使用$cookieStore或类似的东西吗?我看到很少有人提到ui路线,我不能完全理解它。ui路线是否与此讨论相关?我还想使用相同的解决方案为登录用户保存身份验证令牌


你对这个问题的总体看法是什么?提前非常感谢。

Ui-route

我想你指的是AngularJS的路由框架。它与持久性存储无关

服务

角度服务是单例的。它用于在应用程序中组织和共享代码。当诸如控制器之类的组件需要它时,它被实例化。一旦关闭或重新加载应用程序,其中的数据将丢失,并在需要时重新实例化

那么如何持久化数据呢

使用$cookies

  • 获取angular-cookies.js
  • 在应用程序
    angular.module('app',['ngCookies')中包含依赖项
  • 在控制器或服务中包括
    $cookies
    依赖项(您要访问cookies的位置)
  • //获取cookie
    var favoriteCookie=$cookies.get('myFavorite');
    //设置cookie
    
    $cookies.put('myFavorite','oatmedine');`是的,您需要将其存储在持久性存储中:cookie或本地存储。我建议使用ngStorage@JBNizet谢谢。我在互联网上看到的大多数示例都建议使用$scope或$rootscope。所以我认为所有这些解决方案都不是真正可用于生产的解决方案,对吗?@ArjunU。谢谢ngStorage和基于cookie的storage之间有什么区别?非常感谢您的回答!