我是AngularJS的新人。我使用Drupal作为API的后端。
所以这是我的问题:
当用户登录时,Drupal会自动保存Cookie中的SessionNAME = SessionID以保持用户登录,以便在刷新时用户仍然登录但我松开了userId,用户名,他的电子邮件,他最喜欢的电影......
我的解决方案是:在app.run()
向服务器发送请求以获取已记录的用户数据,并将这些数据存储在AuthetificationService.currentUser中,因此如果用户已登录,我将获得所有数据,否则currentUser将为NULL
这是一种不好的做法吗?
注意:如果您的建议是webStorage或cookieStorage,请告诉我我需要存储的确切内容以及何时需要清空cookie或本地存储。
答案 0 :(得分:0)
这是我遵循的惯例,通常用于:
在服务器上创建会话 - > 将用户对象和重要信息存储在localstorage中 例如
localStorage.setObject("myApp_user",user);
localStorage.setObject("myApp_movies",movies);
刷新页面(检查会话) 检查会话(如果已登录) - > 从localStorage获取用户数据并使用它 e.g
UserService.user = localStorage.getObject("myApp_user");
MoviesService.movies = localStorage.getObject("myApp_movies");
注销
在服务器上关闭会话呼叫 - >删除cookies->从localStorage中删除数据...例如
localStorage.removeItem("myApp_user");
localStorage.removeItem("myApp_movies");
希望这有帮助。