首页 > 解决方案 > JWT 身份验证标头不适用于 ISO(Safari 浏览器)

问题描述

我的问题

我正在使用 oAuth JWT 令牌保护我的 API。这是在用户登录并随后存储在 localStorage 时设置的。然后将此令牌解析为请求中的身份验证标头。

这在 Chrome 和 FireFox 等桌面浏览器上运行良好。但是,这不适用于 ISO Safari 应用程序。

研究

根据我自己的调查(带有授权的 Https 请求无法通过 Safari 工作),错误可能是 Safari 覆盖了 Authentication 标头。因此,我尝试改为实现自定义标头,但结果是相同的。

我已经确认在登录 ISO 时正确创建了 JWT 令牌,所以我知道问题不在于令牌本身的生成。

使用的技术

我在我的 HTTP 请求中使用 Axios,在我的前端使用 VueJS,在我的服务器端使用 Node.js,并将 MongoDB 作为数据库。下面,我复制了我在自定义标头中解析 JWT 的请求语句:

let token = localStorage.getItem("jwt")
      axios({
        method: 'post',
        url: 'http://localhost:4000/test/',
        headers: {
            'Content-Type': 'application/json',
            'token': 'Bearer ' + token
        },
        data: {
          email: "test@test.com"
        }
      }).then(function (response) {
            console.log(response);
          }).catch(function (error) {
            console.log(error);
          });
    }

有谁知道这个的解决方案?根据我对这个问题的研究,我可以看到其他人也面临同样的问题,但不幸的是,提出的解决方案对我没有帮助。

先感谢您。

标签: javascriptauthenticationsafarijwthttp-headers

解决方案


推荐阅读