gpt4 book ai didi

oauth - 使用 OAuth2 下载 Javascript 文件

转载 作者:行者123 更新时间:2023-11-28 07:31:33 26 4
gpt4 key购买 nike

我正在开发一个单页面,客户端使用 Javascript+AngularJS,服务器端使用 Spring MVC + Spring Security OAuth2。 Spring MVC 充当来自页面的任何 AJAX 请求的 REST Controller 。

对于授权,脚本会随每个 AJAX 请求发送“Authorization: Bearer ...” header 。当请求少量数据时,这很有效。要下载 XML 文件(导出用户数据),我使用 OAuth2 header 通过 AJAX 下载它们,并创建一个 Blob 以允许在浏览器中保存文件:

var blob = new Blob([data.data], {'type': "text/xml"});
var a = document.createElement("a");
a.href = window.URL.createObjectURL(blob);
a.download = "downloaded-file-" + new Date().toISOString() + ".xml";
a.click();

这种方法有效,但是

  • 使用 RAM,因此不适合下载大文件
  • 未显示正确的进度/加载栏

那么,问题是:有没有更好的方式通过OAuth2授权下载文件? Javascript 不允许在进行重定向时指定 header ,并且 OAuth 不允许通过 URL 参数指定授权 token 。我正在考虑其中之一

  • 添加特殊的 Spring MVC Controller 方法来提供从 URL 编码的 token 重定向到 header 编码的 HTTP 请求的 URL
  • 添加额外的 Spring Security 过滤器以允许从 URL 参数中提取 token
  • 转向基于 Cookie 的授权而不是 OAuth2

如果有人遇到类似问题,能否分享一下解决此问题的方法?

最佳答案

如果我是你,我会选择 cookies ——这样可以省去所有麻烦。我最近写了一些博客来展示它是多么容易(例如 https://spring.io/blog/2015/01/20/the-resource-server-angular-js-and-spring-security-part-iii )。人们太沉迷于“无状态”应用程序。

关于oauth - 使用 OAuth2 下载 Javascript 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29078653/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com