AngularJS:这是一种认证的不良做法吗?

时间:2016-06-19 14:07:12

标签: angularjs authentication cookies

我是AngularJS的新人。我使用Drupal作为API的后端。

所以这是我的问题:

当用户登录时,Drupal会自动保存Cookie中的SessionNAME = SessionID以保持用户登录,以便在刷新时用户仍然登录但我松开了userId,用户名,他的电子邮件,他最喜欢的电影......

我的解决方案是:在app.run()向服务器发送请求以获取已记录的用户数据,并将这些数据存储在AuthetificationService.currentUser中,因此如果用户已登录,我将获得所有数据,否则currentUser将为NULL

这是一种不好的做法吗?

注意:如果您的建议是webStorage或cookieStorage,请告诉我我需要存储的确切内容以及何时需要清空cookie或本地存储。

1 个答案:

答案 0 :(得分:0)

这是我遵循的惯例,通常用于:

  1. 登录 - >
  2. 在服务器上创建会话 - > 将用户对象和重要信息存储在localstorage中 例如

    localStorage.setObject("myApp_user",user); 
    localStorage.setObject("myApp_movies",movies);
    
    1. 刷新页面(检查会话) 检查会话(如果已登录) - > 从localStorage获取用户数据并使用它 e.g

      UserService.user = localStorage.getObject("myApp_user"); MoviesService.movies = localStorage.getObject("myApp_movies");

    2. 注销 在服务器上关闭会话呼叫 - >删除cookies->从localStorage中删除数据...例如 localStorage.removeItem("myApp_user"); localStorage.removeItem("myApp_movies");

    3. 希望这有帮助。