如何解决Angular Web Component http 调用不通过客户端 http 拦截器
设置:
我在 Angular 10 应用程序中使用了一个 Web 组件 (Angular 10)。 Web 组件对 Web API 进行 Httpclient 调用以获取一些数据以填充菜单下拉列表。 Web 组件是使用标准方法制作的,使用 Angular 10 制作 Web 组件。
Web 组件通过主客户端应用程序中的脚本加载。这是来自父应用程序的 angular.json 文件。
1."scripts":
[
"projects/web-component-test/src/assets/plugin.bundle.js"
]
并且一切正常,除了我们收到 401 错误(未经授权),因为端点要求用户登录。通过正常工作,还有其他控件根据需要仅显示下拉列表,它获取数据来自 API 调用的未填充。
流程:
来自父应用程序的 Http 调用工作正常; jwt 令牌被添加到调用受保护 API 的标头中。来自子 Web 组件的调用在标头中没有 jwt 标记,因此失败并显示 401 错误。
httpinterceptor:我们在 主客户端 应用程序(Web 控件的父级)上有一个 httpinterceptor。从主应用发出的 Http 调用通过拦截器进行路由,如果需要,令牌会附加到头中。
从子 Web 组件发出的调用不要命中父应用程序中的拦截器吗?
问题: 如何通过父级中的 http 拦截器从子 Web 组件路由进行调用,以便添加令牌。
我尝试过的事情: 如果我这样做,我可以让 Web 组件正常工作:
- 当父加载时,我将令牌存储在本地存储中
- 在 Web 组件上使用 http 拦截器,从本地存储中检索令牌并使用它。
** 有效,但我不想在本地存储中存储安全令牌。
当父组件加载子组件时,在子组件的属性中传递令牌
** 再次,我可以让它工作,但不是很安全。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。