【问题标题】:Cannot sent JWT in headers to the server无法将标头中的 JWT 发送到服务器
【发布时间】:2020-04-08 05:11:19
【问题描述】:

我正在学习一个以 Vue 作为前端、以表达为后端和 Mongodb 的全栈应用程序。 我有登录表单并在后端进行了简单的身份验证,在用户通过身份验证后,我生成 JWT 并存储在用户浏览器中,在用户的路由导航保护中,我请求发送该令牌以在服务器中验证,然后让用户在受保护的路线中

{
    path: '/user',
    name: 'User',
    component: () => import('../views/User.vue'),
    beforeEnter: (to, from, next) => {
      let token = localStorage.getItem('access_token')

      axios.post('http://localhost:5000/authorize', {headers: {
        Authorization: `Bearer ${token}`
      }})

    }
  }

但我无法将包含令牌的标头发送到服务器,它得到undefined 那么如何正确执行此操作?

【问题讨论】:

    标签: express vue.js jwt


    【解决方案1】:

    为了进行身份验证,您的标头必须具有 Content-Type 键和 application/json 值

    尝试使用 Postman 登录。您应该在响应中收到 JWT ${token}。

    一旦您通过身份验证,您的所有请求都必须在标头中包含以下键/值对:

    • 内容类型:application/vnd.api+json
    • 接受:application/vnd.api+json
    • 授权:不记名${token}

    注意:必须在 Authorization 标头中包含文本“Bearer”(带空格),并且区分大小写。

    【讨论】:

    • 我添加了 Content-Type 但它不起作用,我确实在浏览器网络选项卡中检查它不包含请求中的令牌
    • 当您进行身份验证以获取 JWT 时,您仅使用 Content-Type 标头。一旦您通过身份验证并拥有 JWT,那么在浏览其他需要身份验证的路由时,您必须使用 Content-Type、Accept 和 Authorization 标头。我不使用 Vue,所以我帮不上什么忙。但是,您可以在使用 Vue 之前先使用 Postman 验证 API 端。
    • 非常感谢,我用 Postman 试过了,是的,我得到了令牌
    猜你喜欢
    • 2011-09-13
    • 2011-02-21
    • 2023-03-08
    • 2015-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多