【问题标题】:Download a file that needs authentication token下载需要身份验证令牌的文件
【发布时间】:2014-06-18 06:51:23
【问题描述】:

我正在实现一个带有 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。我尝试在ng-click 上使用$http.get(),但that cannot not work

有没有简单的替代方案?

【问题讨论】:

  • 我在使用 ember js 和 oauth 时遇到了类似的问题。您找到最佳做法了吗?

标签: ajax angularjs spring-security


【解决方案1】:

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

我使用itsdangerous library 来实现带时间戳的令牌。

【讨论】:

    猜你喜欢
    • 2019-02-16
    • 2019-07-12
    • 2021-06-03
    • 2020-03-25
    • 1970-01-01
    • 2019-08-12
    • 1970-01-01
    • 1970-01-01
    • 2015-04-11
    相关资源
    最近更新 更多