首页 > 解决方案 > 如何对静态服务内容使用 jwt 身份验证?

问题描述

我有一个由前端(用 Vue 编写)和后端(用节点编写)组成的站点。该api使用jwt身份验证,因此只有登录用户才能向后端发出请求。

jwt 被放置在Authorization: Bearer xxx.

当我有敏感图像或静态文件(例如身份证)时,问题就出现了。

假设我有一个静态服务的敏感图像。现在,我也可以为该静态提供的图像添加jwt 身份验证,没问题,但是在前端,我如何告诉浏览器将我的 jwt 放在请求上

<img href="/my/sensitive/image.png" />

请注意,jwt 是先验未知的,它由用户登录名检索。

标签: htmlnode.jsauthenticationjwt

解决方案


使用 cookie。将 JSON Web 令牌存储在 cookie 中(最好使用 HTTPOnly、Secure 和 SameSite 标志),以便浏览器自动将每个请求的值附加到您的源。

从安全的角度来看,这也是一个好主意——如果客户端 JS 无法随时访问令牌,则通过跨站点脚本漏洞泄露令牌的风险降至零。


推荐阅读