下载需要身份验证令牌的文件

Wim*_*uwe 5 ajax spring-security angularjs

我正在实现一个带有 REST 后端的 AngularJS 应用程序(使用 Spring Boot)。

我目前可以下载这样的文件:

<td><a href="/api/datasheets/{{datasheet.id}}/documents/{{document.id}}/download" download>Download</a></td>
Run Code Online (Sandbox Code Playgroud)

现在,我正在为我的应用程序添加安全性(使用 Spring Security),现在这不再有效。AJAX 调用的身份验证通过x-auth-token为每个请求添加HTTP 标头来实现。

但是一个简单href的当然x-auth-token在标题中没有。我尝试$http.get()在 an 上使用ng-click,但这不行

有没有简单的替代方案?

Pra*_*dey 1

我在以角度实现文件下载时遇到了类似的问题。就我而言,我无法在 Safari 中处理 blob。我所做的是:创建一个处理程序,返回一个有效期为 5 秒的下载令牌。只有经过身份验证的用户才能获取此令牌。获得令牌后,调用另一个处理程序,该处理程序在验证令牌后返回文件,并且该处理程序可以公开访问。因此,您在下载文件时不需要发送身份验证标头。

我使用其危险库来实现时间戳标记。