Node.js 如何使用Ionic 4中的标头发送身份验证令牌?

Node.js 如何使用Ionic 4中的标头发送身份验证令牌?,node.js,angular,ionic-framework,jwt,authorization,Node.js,Angular,Ionic Framework,Jwt,Authorization,在不使用HttpInterceptor的情况下,我希望将包含授权令牌的头发送到我的后端。下面是我尝试通过Headers对象执行的操作: 在后端,我使用此中间件功能验证令牌: var isAuthenticated = function(req, res, next) { var token = req.headers["Authorization"]; console.log("mytoken is " + token); if (!token) { return res

在不使用HttpInterceptor的情况下,我希望将包含授权令牌的头发送到我的后端。下面是我尝试通过Headers对象执行的操作:

在后端,我使用此中间件功能验证令牌:

  var isAuthenticated = function(req, res, next) {
  var token = req.headers["Authorization"];
  console.log("mytoken is " + token);
  if (!token) {
    return res.status(401).json({
      error: null,
      msg: "You have to login first before you can access your lists.",
      data: null
    });
  }
  jwt.verify(token, req.app.get("secret"), function(err, decodedToken) {
    if (err) {
      return res.status(401).json({
        error: err,
        msg: "Login timed out, please login again.",
        data: null
      });
    }
    req.decodedToken = decodedToken;
    next();
  });
})

以下是我的后端的结束点:

router.get(
  "/user/getCurrentPoints",
   isAuthenticated,
   userCtrl.getCurrentPoints
 );
问题是我总是遇到401错误:你必须先登录才能访问你的列表。此外,我得到我的令牌是未定义的,在后端。我是否将令牌错误地发送到后端?

请尝试下面的代码

const httpOptions = {
    headers: new HttpHeaders({
        'Authorization': 'Bearer ' + localStorage.getItem("token")
    })
  };
this.httpClientObj.get(environment.apiUrl + "/user/getCurrentPoints", httpOptions);

console.logmytoken的输出是什么?logmytoken是+token;?另外,当你像这样读授权标题时,你也会读单词Bearer,所以你必须从结果中删除它。@jps控制台中的输出是未定义的。@jps我也从标题中删除了Bearer,但我仍然得到相同的错误我认为引号没有正确关闭我必须删除Bearer吗,因为我的后端没有拆分标头,或者它是自动完成的?不,您必须在授权标头中添加承载,您可以这样做。token=req.headers.authorization.split'Bearer'[1];令牌现在为空
const httpOptions = {
    headers: new HttpHeaders({
        'Authorization': 'Bearer ' + localStorage.getItem("token")
    })
  };
this.httpClientObj.get(environment.apiUrl + "/user/getCurrentPoints", httpOptions);