Javascript 如何从jQuery发送带有AJAX请求的令牌

Javascript 如何从jQuery发送带有AJAX请求的令牌,javascript,jquery,express,jwt,express-jwt,Javascript,Jquery,Express,Jwt,Express Jwt,我使用express jwt并通过jQuery创建令牌,并将其保存在我的本地存储中,方法是: $.ajax({ url: "http://localhost:8080/login", type: 'POST', data: formData, error : function(err) { console.log('Error!', err) }, success: function(data) { console.log('Success!')

我使用express jwt并通过jQuery创建令牌,并将其保存在我的本地存储中,方法是:

$.ajax({
  url: "http://localhost:8080/login",
  type: 'POST',
  data: formData,
  error : function(err) {
    console.log('Error!', err)
  },
  success: function(data) {
    console.log('Success!')
    localStorage.setItem('token', data.id_token);
  }
});
我的后端有一个受保护的路由,如:

app.get('/upload',jwt({secret: config.secret}), function(req, res) {
  res.sendFile(path.join(__dirname + '/upload.html'));
});

如何从localStorage发送带有请求标头的令牌?

您可以在请求中设置标头:


我使用下面的方法用结果状态类型介绍JWT身份验证

$.ajax({
url:“http://localhost:8080/login",
类型:“POST”,
标题:{Authorization:$`Bearer${localStorage.getItem(“令牌”)}`},
数据:formData,
错误:函数(err){
开关(错误状态){
案例“400”:
//错误的请求
打破
案例“401”:
//未经授权
打破
案例“403”:
//禁止的
打破
违约:
//发生了不好的事
打破
}
},
成功:功能(数据){
console.log(“成功!”);
}
});

如果您使用的是JWT身份验证,则以下是将其添加到.ajax()方法中的标题的方式:


为什么要将令牌发送到头中?为什么不进入数据???@ahmedbhs我相信他试图以某种方式保护令牌。对于JWT头,这对我来说是有效的
headers:{“Authorization”:“Bearer”+token}
在Javascript中像变量一样公开JWT令牌时,你应该非常小心。当然不要在前端公开它,但问题是如何在请求中发送保存的令牌。不知道如何在请求后保存令牌。
$.ajax({
  url: "http://localhost:8080/login",
  type: 'GET',
  // Fetch the stored token from localStorage and set in the header
  headers: {"Authorization": localStorage.getItem('token')}
});
headers: {
    Authorization: 'Bearer '+token
}