用 cookie 调用 JWT 保护的 API



我有一个带有Web Api后端的SPA。API 调用在标头中使用 JWT 进行身份验证。我试图解决的问题是,如何不使用 XHR 而是使用window.open进行一个特定的 api 调用。我已经通过在调用之前将令牌保存到 cookie 并创建一个中间件来解决这个问题,该中间件仅拦截一条路由的此 cookie 并将其放入标头。这样 JWT 身份验证中间件就可以做它的事情。此 API 调用是 GET 路由,所以我不关心 XSR 问题。 这个"黑客"还有其他陷阱吗?

有点背景: API 调用正在发回 pdf 流。我可以在新选项卡中打开它,没问题。但是后来我遇到了各种浏览器特定的问题 - Edge/IE 不允许打开 blob;Chrome,Safari需要一个设置来允许弹出窗口...并且有可能出现广告拦截。弹出窗口阻止也随FileSaver.js一起提供。另一方面,只需打开一个 URL 即可在任何地方工作,无一例外。对于观众(主要是计算机文盲),我的目标是这似乎是最好的解决方案。

我建议你在SPA上处理这条路线。并从前端发出 XHR 请求,而不是直接由 API 后端处理。

最新更新