使用JWT安全下载大文件

问题描述 投票:0回答:1

我们有一个使用JWT作为API身份验证方式的有角项目

除了下载文件之外,一切正常,它可以很大(例如10 GB)

我读了Download files in Javascript with OAuth2建议我们将令牌作为查询参数传递]

但是当我用Google搜索它时,我发现很多网站都不推荐这样做,我想知道还有什么替代方法

所以有比下载文件更安全的解决方案,而不是在查询参数中传递文件?

angular http security download jwt
1个回答
1
投票

类似于AWS S3签名的URL,建议您生成一个特殊的JWT令牌,仅用于下载文件并使用查询参数将其传递:

1)客户端调用POST /request-download/[fileID]-请求授权以下载文件。

2)服务器返回仅用于下载响应中的文件的特殊JWT

3)客户端使用GET /path-to-file?token=[the-token-from-response]下载文件>

您只需要在服务器上实现自定义身份验证/授权逻辑即可接受文件的特殊JWT令牌。

您可以跳过第一步,只返回特定文件的下载令牌以与每个文件一起下载。

[我的意思是“用于下载文件的特殊JWT令牌”是标准的JWT令牌,该令牌授权持有人仅下载单个文件,而没有其他权限-您可以将fileId作为声明传递给令牌,设置到期时间可以满足您的需求。然后,您可以在下载端点上验证令牌的有效性。轻松。

© www.soinside.com 2019 - 2024. All rights reserved.