【问题标题】:jwt token return nulljwt 令牌返回 null
【发布时间】:2021-01-22 08:33:32
【问题描述】:

我尝试通过令牌获取用户 ID, 令牌由标头授权传递, 当我使用 ExtractJwt.fromAuthHeaderWithScheme("jwt")(req) 我将令牌取回为 null

这里是将令牌传递给标头。

const token = localStorage.getItem("id_token");

export const insertMovie = (payload) => {
  return api.post(`/movie`, payload, {
    headers: { "Authorization": `${token}` },
  });
};

这里我尝试验证token

var User = require("../models/user-model");
var Movie = require("../models/movie-model");
var bcrypt = require("bcrypt");
var jsonwt = require("jsonwebtoken");
var key = require("../db/myUrl");
var ExtractJwt = require("passport-jwt");



 createMovie = async (req, res) => {
  const movieDetails = req.body.movie;
  const token = ExtractJwt.ExtractJwt.fromAuthHeaderWithScheme("jwt")(req);
  const decoded = jsonwt.verify(token, key.secret);
  const userId = decoded.userId;
  console.log(decoded);
}

【问题讨论】:

    标签: javascript node.js jwt jwt-auth


    【解决方案1】:

    如果你声明了一个需要附加到令牌的方案“jwt”,你已经加倍了 ExtractJwt 标头:{ Authorization: `jwt ${token}` }

    否则将 fromAuthHeaderWithScheme 更改为仅 fromAuthHeader 到 fromHeader(‘Authorization')

    另外我不确定你是否可以直接在这样的端点内使用护照 - 我一直认为它需要用作中间件。

    【讨论】:

      【解决方案2】:

      当你尝试时

      ExtractJwt.fromAuthHeaderWithScheme("jwt")
      

      您需要像这样将令牌添加到标头:

      headers: { "Authorization": `jwt ${token}` },
      

      来自docs

      fromAuthHeaderWithScheme(auth_scheme) 创建一个新的提取器,在授权标头中查找 JWT,期望方案与 auth_scheme 匹配。

      【讨论】:

        猜你喜欢
        • 2017-03-27
        • 2017-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-08
        • 2018-09-25
        相关资源
        最近更新 更多