【发布时间】:2015-02-10 05:04:54
【问题描述】:
我在我的 node.js 服务器上使用 express-jwt 模块来授权用户访问不同的请求。其中一个请求最终将是使用 express res.download(file) 下载文件。
问题是我无法像通常通过 AJAX(角度 $http.get)那样执行请求,因为这不会触发浏览器中所需的文件下载弹出窗口。如果没有 AJAX(window.open),我无法为 express-jwt 提供必要的授权标头。
关于如何使用 express 和 jwt-express 从 node.js 实现我的授权文件下载的任何提示?
【问题讨论】:
-
不久前我做了类似的事情,只是将 onClick 与 window.open 一起使用,它触发了 NodeJS Express 服务器的文件下载。如果你自己尝试会发生什么?
-
问题是我需要在标题中添加一个令牌(jwt),因为下载是受保护的。
-
这可能包含您的答案。似乎使用 XhtmlRequest 来加载带有自定义标头 stackoverflow.com/questions/10516463/… 的文件
-
如上所述,我不能使用 Ajax,因为浏览器“另存为”对话框未显示,因此无法用于文件下载。
-
这里不要引用我的安全问题。但是 google api 使用令牌作为查询字符串参数来做类似的事情......你可能会更多地研究这种方法。否则我不知道除了cookie认证之外的任何其他方式
标签: javascript angularjs node.js express