【发布时间】:2017-11-27 18:18:55
【问题描述】:
问题描述
在我的应用中,我使用的是 JWT 身份验证。在令牌的有效负载中,我存储了用户 ID。 登录后,或者当用户刷新页面并且仍然有一个有效的令牌时,我使用令牌中的 id 从我的后端检索有关用户的一些信息。 我需要在依赖它们的应用的多个组件之间共享这些信息。
当前解决方案
我有一个服务可以检索这些信息并将其存储在一个对象中。 依赖这些信息正常工作的组件会在其中注入此服务(服务是单例),并在其布局顶部有一个 *ngIf 以避免在信息不存在时显示任何内容。
可能的替代解决方案(Route Resolves)
我最近发现了路由解析守卫。这些对我有用吗? 我可以实现一个守卫,要求在显示页面之前加载信息,并将其添加到所有需要它们的路由中。
- 这些警卫工作像服务吗?
- 那些可以注入 成分?他们是单身人士吗?
- 如果我将包含用户信息的对象返回给路由(我会在第一次加载后将对象存储在路由保护中,以避免不必要的 api 调用),这将是存在于保护中的相同对象还是副本? (如果我需要修改它)(如本教程中所述http://www.callibrity.com/blog/angular-2-route-resolves)
谢谢
【问题讨论】:
标签: angular angular-router-guards