【发布时间】:2015-06-03 16:08:14
【问题描述】:
- 我有一个文件,与烧瓶一起提供,受基于令牌的保护 验证。
- 我想提供一个 Angular 应用程序的下载
- 令牌存储在 Angular 会话中,并放入每个 $http.get 或 post 的标头中
但是当我只是放置一个指向烧瓶路径的链接时,令牌不会添加到请求标头中,因为它不是有角度的 $http.get() 而只是一个普通的锚,我不能这样做(对吗?)。
我不想将 url 中的令牌作为查询字符串参数传递。 我如何向用户提供下载?我应该先将它 $http.get() 转换成 Angular,然后将其作为文件下载通过隧道吗?
登录后的令牌存储:
$window.sessionStorage.token = results.response.user.authentication_token;
在每个 $http get 或 post 中注入:
config.headers['Authentication-Token'] = $window.sessionStorage.getItem('token');
Flask(带有flask-security)部分:
@app.route("/download", methods=['GET'])
@auth_token_required
def download():
response = make_response(open('filename.ext').read())
response.headers["Content-Disposition"] = "attachment; filename=download.ext"
return response
我该如何解决这个问题?
【问题讨论】:
-
看看解决方案here。但仅适用于 HTML5。
-
谢谢!这是一个很好的技巧,我会尽快写答案
标签: angularjs download flask token flask-security