使用 REST 和 JSON Web Token 上传/下载文件

Posted

技术标签:

【中文标题】使用 REST 和 JSON Web Token 上传/下载文件【英文标题】:File upload/ download using REST and JSON Web Token 【发布时间】:2017-10-12 21:16:01 【问题描述】:

文件上传/下载如何在内部工作,是否需要多次请求和响应?我问这个问题是因为我使用 Spring Security 进行 JSON Web 令牌 (JWT) 身份验证,如果文件上传/下载需要多个请求/响应,那么我应该如何使用文件上传/下载发送身份验证/刷新令牌多次请求。

我在基于 Java Swing 的桌面应用程序中使用 JWT。

【问题讨论】:

身份验证令牌通常与每个请求一起发送,因为这些类型的 Web 应用程序通常是无状态的,这意味着您没有会话,因此令牌是唯一对您进行身份验证的东西。 @Riiverside 这是我担心文件上传和下载的唯一原因,因为它可能是多个请求。 我真的不明白有什么需要担心的。您可以简单地将令牌作为 HTTP 标头提供给每个请求。但您也可以在单个多部分请求中上传多个文件。这里有一个很好的例子:mkyong.com/spring-mvc/spring-mvc-file-upload-example @Riiverside 感谢您提供多部分选项。我会试试的,会联系你的。 【参考方案1】:

您可以对文件发出单个请求,在不记名标头中提供您的令牌。在验证请求(验证令牌并检查任何声明)后,Web 服务器应将文件作为流返回并指定 some response headers 以向客户端(在本例中为您的 Swing 桌面应用程序)指示如何处理响应。

【讨论】:

文件上传怎么样,JWT 可以用 REST 吗?能否提供参考?

以上是关于使用 REST 和 JSON Web Token 上传/下载文件的主要内容,如果未能解决你的问题,请参考以下文章

Django Rest Framework(DRF) Json Web Token(JWT) 身份验证和登录过程

我可以通过 django-rest-auth 登录和注册返回 JSON Web Token (JWT) 吗?

django-rest-framework之 json web token方式完成用户认证

django rest框架json web token注销功能

通过 Flutter App 和 JSON Web Token 在 Django 中验证用户

JWT (JSON Web Token) 如果有人嗅到了令牌,可以发送相同的帖子吗?