首页 > 解决方案 > 使用 JWT 进行自定义身份验证,以便从 S3 下载

问题描述

我在 AWS 上有一个设置,我在 ElasticBeanstalk/EC2 上运行一个后端,它将一些文件存储在 S3 中。我想做的是,当经过身份验证的(通过我的后端)用户想要下载文件时,他们可以直接从 S3 下载文件,而不是通过后端本身。

为此,我希望 S3 在允许文件下载之前检查签名的 JWT。现在,让我们假设任何正确签名的 JWT 都允许下载任何文件,而不管 JWT 声明如何。为了使这更加困难,我希望下载链接可以在 HTML 中使用<img src='link/to/s3/'>,因此像往常一样在标头中发送 JWT 是不可行的。

S3甚至可以做到这一点吗?我将如何进行设置?

标签: amazon-web-servicesamazon-s3

解决方案


我对 S3 不是很熟悉,但它不是已经有了“签名 URL ”的概念吗?

您的 Web 应用程序没有发出 JWT,而是使用 S3 专有方法生成一个 URL,该 URL 对到期时间和其他参数进行编码,但总体结果是相同的。


推荐阅读