html - 如何对静态服务内容使用 jwt 身份验证?
问题描述
我有一个由前端(用 Vue 编写)和后端(用节点编写)组成的站点。该api使用jwt身份验证,因此只有登录用户才能向后端发出请求。
jwt 被放置在Authorization: Bearer xxx
.
当我有敏感图像或静态文件(例如身份证)时,问题就出现了。
假设我有一个静态服务的敏感图像。现在,我也可以为该静态提供的图像添加jwt 身份验证,没问题,但是在前端,我如何告诉浏览器将我的 jwt 放在请求上?
<img href="/my/sensitive/image.png" />
请注意,jwt 是先验未知的,它由用户登录名检索。
解决方案
使用 cookie。将 JSON Web 令牌存储在 cookie 中(最好使用 HTTPOnly、Secure 和 SameSite 标志),以便浏览器自动将每个请求的值附加到您的源。
从安全的角度来看,这也是一个好主意——如果客户端 JS 无法随时访问令牌,则通过跨站点脚本漏洞泄露令牌的风险降至零。
推荐阅读
- javascript - 对单个数组中的两种类型的对象进行排序
- javascript - 添加到页面上的主屏幕弹出窗口 - 打开另一个 URL
- regex - 使用 bash 计算模式之间的行/字符
- javascript - 使用 AJAX 将变量发送到 PHP 并再次使用 AJAX 检索输出
- jwt - 为什么我得到的角色声明有时带有命名空间,有时却没有命名空间
- angular - Angular 材质列表项不适用于包含 delay() 的异步管道
- excel - 日期格式在excel vba中不起作用
- javascript - Java 的 Calendar.getInstance().getTime() 在 JavaScript 中的等价物
- azure - 在 Azure 逻辑应用程序中如何将 Cookie 发送到端点
- kubernetes - 如何删除 Cronjob 资源?