【发布时间】:2016-12-13 01:41:42
【问题描述】:
我正在使用 AngularJS 开发单页应用程序。
当用户成功登录时,安全令牌会存储在 cookie 中。现在,当他刷新页面时,令牌将被发送到后端,后端返回一个 JSON 对象“currentUser”,其中包含有关当前用户的所有相关信息(如姓名、访问组、个人资料图片等)。
问题是,这当然是一个异步过程,所以当控制器开始另一个操作时,比如说,只是提醒用户名,此时这个值将是未定义的。
当然,我可以设置超时,但有更好的解决方案吗?
我想到了一个“currentUserService”,它先初始化(发送cookie并用后端响应填充用户信息),只有在这个初始化完成后才能处理。
但是如何做到这一点呢?或者还有其他可能吗?
编辑: 嗨,大家好, 感谢您的意见!
总体而言,您的两个建议似乎都非常适合异步请求,但我认为它们可能不完全符合我的担忧:
当前用户的信息只需要请求一次,所以我想存储它们用于整个应用程序(例如在 rootScope 或服务中)可以从任何控制器访问,而不必在每个控制器中再次请求它们(如在回调或解析解决方案中),但要确保不会出现任何“超时”问题。你有什么想法吗?
【问题讨论】:
标签: javascript angularjs authentication cookies service