【问题标题】:I need to replace Bearer from the header to verify the Token我需要从标头中替换 Bearer 以验证 Token
【发布时间】:2017-10-10 10:54:01
【问题描述】:
bearer = bearerHeader.replace("Bearer","");
jwt.verify(bearer, 'super_secret', function (err, decoded) {
    console.log(err);
    console.log(decoded);
});

这是我的代码。每当我尝试验证令牌时。我想从标头中替换 Bearer 以仅验证令牌。如果采取 Bearer,它总是会“出错”。当我从标题中删除承载时,我会完美地工作。任何人请帮我解决这个问题。有什么办法可以解决这个问题吗?

输出:

  { 
     [JsonWebTokenError: invalid token] name: 'JsonWebTokenError',
     message: 'invalid token'
  }

   undefined

【问题讨论】:

    标签: javascript node.js restify


    【解决方案1】:

    如果 bearerHeader 类似于“Bearer 456513”,那么您的代码

    bearerHeader.replace("Bearer","");
    

    将产生:“456513”(令牌前有空格)

    bearerHeader.replace('Bearer ',''); 
    

    可能会解决您的问题,但我建议先验证身份验证方案(“Bearer”一词实际上是“Bearer”):

     var parts = bearerHeader.split(' ');
     if (parts.length === 2) {
       var scheme = parts[0];
       var credentials = parts[1];
    
       if (/^Bearer$/i.test(scheme)) {
         token = credentials;
         //verify token
         jwt.verify(token, 'super secret', function(err, decoded) {
         }
       }
    }
    

    【讨论】:

      【解决方案2】:

      试试这个

      bearer = bearerHeader.replace(/^Bearer\s/, '');
          jwt.verify(bearer, 'super_secret', function (err, decoded) {
                              console.log(err);
                              console.log(decoded);`
          }
      

      【讨论】:

        【解决方案3】:

        您可以尝试split()空格上的字符串并丢弃第一个元素

        // OPTION 1
        bearerHeader.split(" ")[1];
        

        或者你可以简单地从字符串中剪切Bearer

        // OPTION 2
        bearerHeader.replace("Bearer", "");
        

        【讨论】:

          【解决方案4】:

          你应该在 Bearer 之后传递空格

          var token = req.headers.authorization.replace('Bearer ', '');
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-10-23
            • 2023-03-20
            • 1970-01-01
            • 1970-01-01
            • 2017-12-07
            • 1970-01-01
            • 2021-12-26
            • 2014-12-26
            相关资源
            最近更新 更多