【发布时间】:2017-08-15 13:55:28
【问题描述】:
我希望能够通过 API 调用下载文件。为了论证的缘故,假设它是一个自动生成的 PDF 文件。
我有两个问题:
- 锚标签不能在请求中添加
Authorization标头,只有XHR可以。 -
XHR请求无法下载文件。
我的解决方案是编写带有[AllowAnonymous] 端点的API,它将access_token 作为参数。然后我手动验证访问令牌并返回 401 或流式传输 PDF。
有没有比这更好的解决方案,或者,如果这是最好的解决方案,我如何在 API 中验证 access_token?
【问题讨论】:
-
您可以使用客户端凭据 OAuth 流程。第一步,在 identityserver3 中创建 Web Api 作为客户端。第二步,使用客户端 id 和 secret 从 id 服务器获取访问令牌。第三步,在对 web api 的请求中添加一个带有“Bearer”令牌的授权标头。看这里:developerhandbook.com/c-sharp/…
-
所以问题更多是 javascript/XHR 问题而不是 IdSvr?我们有一个返回生成文件的 API,它是一个受保护的端点(以通常的方式)。从该端点返回的是
FileContentResult。尝试使用 AJAX 调用来调用该端点需要跳过通常的 javascript-download-a-file 箍。
标签: identityserver3 identityserver4