【发布时间】:2018-08-02 01:23:48
【问题描述】:
当用户从菜单中选择一个较大的应用程序时,我的应用程序正在被延迟加载。此时用户已经通过身份验证并具有适当的角色,但由于组应用程序中的分段,我仍然必须通过将用户名和特殊密钥发送到服务器来对用户进行半身份验证,然后我得到一个令牌。
必须先加载该令牌,然后我才能执行任何其他数据请求。现在我有一个数据服务,它的构造函数的一部分进行了这个登录。不幸的是,因为 http 客户端是异步的,这意味着我的应用程序中加载的第一个组件无法进行数据调用,因为此时数据服务刚刚创建......
我应该从哪里获得这个令牌以避免这种情况?
【问题讨论】:
-
我不认为执行同步 HTTP 调用是您问题的真正解决方案,不知道这是否真的可行。但是,您的通用“dataService”或“apiService”不应该是您的延迟加载模块重用的全局单例吗?如果该服务负责身份验证,则您的延迟加载模块只需要使用它们的“dataService”。 ItemResourceService,不关心实际的rest通信是如何发生的(或者服务器的绝对路径是什么)
-
这个 api 服务连接到我们单独的服务器并进行身份验证。用于收集数据的完全不同的不同服务器。我根本不能使用他们的身份验证或数据服务,只能说用户在到达我的时候已经过身份验证。我现在的想法是让组件首先被转储,这是一个启动屏幕,当服务准备好时重定向到需要组件的数据。不过,我对 Angular 还很陌生,所以我只是不确定如何以“正确的方式”处理这个问题
标签: angular