我需要在浏览器中下载非常大的文件,因此我需要浏览器支持才能下载该文件。它应该看起来像这样:
我的问题是我必须使用 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();
});
}
您知道如何添加标题吗? 这是一个有角度的项目。
为什么不尝试使用 azure 的
SAS
,这样你就有一个临时令牌,该令牌会在短时间内过期,并允许你使用你正在使用的确切方法下载代码。
您必须在后端创建一个返回 SAS 令牌的 API,然后您可以使用此令牌触发下载。