我们正在使用面向微服务的架构在Angular中开发SPA。这意味着有一个API网关向API公开API。在API网关的后面有一些微服务,比如客户服务。 API网关还负责身份验证,并且目前充当底层微服务的代理。将使用Oauth和加密的Cookie处理身份验证。
现在考虑API网关将类似/ customers / {id} / orders的端点暴露给SPA,这意味着SPA必须知道此情况下的客户ID。如何处理必须在SPA /浏览器中存储客户/帐户特定数据以调用RESTful API(网关)的情况? API网关应该公开这样的端点吗?或者更好地从经过身份验证的用户获取数据,然后调用相关的微服务?暴露端点的意义,例如客户/订单?没有客户特定信息。
我知道有LocalStorage等,但在浏览器中存储帐户/客户特定数据感觉不太好。
非常感谢您的讨论和投入。
答案 0 :(得分:0)
通常,如果这是客户站点,您将在登录时返回客户。然后该网站将其用于其他api调用。我不会使用本地存储,只是让它保持在您的状态。如果应用程序很复杂,我会使用ngrx:https://github.com/ngrx
如果应用程序被看到多个客户数据的人使用,则需要调用以检索客户列表。然后,您将使用该客户群构建您需要的链接。我再次使用state而不是本地存储。