调用 onclick() 进行 GET 下载时在 HTMLAnchorElement 上添加标头

问题描述 投票:0回答:1

我需要在浏览器中下载非常大的文件,因此我需要浏览器支持才能下载该文件。它应该看起来像这样:

enter image description here

我的问题是我必须使用 JWT 标头进行身份验证。我当前的解决方案有效,但不安全,我附加了 jwt 令牌。

private downloadFile(apiPath: string): void {
   this.oidcSecurityService
     .getAccessToken()
     .pipe(take(1))
     .subscribe((token) => {
       const downloadUrl = `${this.apiEndpoint}/${apiPath}?ms-download-jwt=${token}`;
       const link = document.createElement('a');
       link.href = downloadUrl;
       link.click();
     });
 }

您知道如何添加标题吗? 这是一个有角度的项目。

javascript angular typescript dom
1个回答
0
投票

为什么不尝试使用 azure 的

SAS
,这样你就有一个临时令牌,该令牌会在短时间内过期,并允许你使用你正在使用的确切方法下载代码。

您必须在后端创建一个返回 SAS 令牌的 API,然后您可以使用此令牌触发下载。

© www.soinside.com 2019 - 2024. All rights reserved.