在生产模式中,我在同一站点上有angular 5客户端和web api,所以我对会话没有任何问题,但在开发模式下,我的angular 5托管在localhost:4200,它在每次调用时重置会话服务。
我可以在开发模式下将角度5和web api托管在同一主机上,但这意味着我必须一直进行构建(这会产生很大的开销)。
有什么想法吗? 我应该使用会话吗?还是有更好的方法?
首先,就像Andrei Dragotoniu所说,在网络API中使用会话不是最佳做法,应该避免使用。
但是如果web api必须使用会话我找到了开发模式的解决方案 - 为angular 5项目添加一个代理: 我不得不将我的请求代理到我的web api服务器,而不是对web api和web api的请求是同一个域。
如何向angular 5项目添加代理:
angular-cli server - how to proxy API requests to another server?
答案 0 :(得分:0)
如果你在谈论点网后端会话,那么你不应该尝试使用它。原因很简单,api是无状态的,每个请求都是独立的,需要拥有完成它所需的所有数据。
然而,在客户端,您可以使用允许您存储以供以后使用的东西,本地存储是一个很好的选择。
此外,在角度方面,您可以使用单件服务共享数据:https://angular.io/guide/singleton-services
这些服务只创建一次,您可以将数据存储在其中,将它们注入任何组件需求,它们真正成为共享数据的方式。如果您碰巧重新加载应用程序,那么所有数据都将丢失,因此在这种情况下,本地存储可以提供帮助。
我怀疑你最终会得到单例服务和本地存储的组合,但是不要试图在无状态api中使用会话。