我正在用 Angular 编写一个 webapp,其中身份验证由 JWT 令牌处理,这意味着每个请求都有一个包含所有必要信息的“ Authentication”头。
这对 REST 调用非常有效,但是我不明白应该如何处理后端托管的文件的下载链接(这些文件与 Web 服务托管在同一台服务器上)。
我不能使用常规的 <a href='...'/>
链接,因为它们不会携带任何标头,认证将失败。window.open(...)
的各种咒语也是如此。
我想到了一些解决办法:
以上所有情况都不能令人满意。
1是我现在正在使用的解决方案。我不喜欢它有两个原因: 第一,它的安全性不理想,第二,它的工作,但它需要相当多的工作,特别是在服务器上: 下载一些东西,我需要调用一个服务,生成一个新的“随机”网址,存储在某个地方(可能在数据库)一段时间,并返回给客户端。客户端获取 url,并使用 window.open 或与之类似的命令。当被请求时,新的 URL 应该检查它是否仍然有效,然后返回数据。
2似乎至少一样多的工作。
3看起来工作量很大,即使使用可用的库,也存在很多潜在的问题。(我需要提供自己的下载状态栏,在内存中加载整个文件,然后要求用户在本地保存文件)。
这个任务看起来很简单,所以我想知道是否有更简单的方法可以使用。
我不一定要寻找一个解决方案“角度的方式”。