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

时间:2014-05-01 18:07:03

标签: ajax angularjs spring-security

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

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

<td><a href="/api/datasheets/{{datasheet.id}}/documents/{{document.id}}/download" download>Download</a></td>

现在,我正在为我的应用程序添加安全性(使用Spring Security),现在这已经不再适用了。对AJAX调用进行身份验证的方法是在每个请求的HTTP标头中添加x-auth-token

但简单的href在标题中没有x-auth-token。我尝试在$http.get()上使用ng-click,但that cannot not work

有一个简单的替代方案吗?

1 个答案:

答案 0 :(得分:1)

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

我使用itsdangerous library来实现timstamped令牌。