我需要将我的jwt令牌存储在本地存储中,并且也将其放回标头中,当我用邮递员对其进行测试时,一切工作都非常完美。我进行了很多搜索,以找到正确的在线方法并使其正常运行,但没有发现任何有用的方法。
它在前端返回错误的无效令牌或未经授权的用户
这是我的代码:
$(document).ready(function(){
$('.submit').on('click', function(e){
e.preventDefault();
const name = $('#myInput').val();
const model = $('#do_it').val();
const condition = $('#select option:selected').val();
const description = $('#1').val();
const price = $('#exp').val();
const products = {
product_name: name,
product_model: model,
product_condition: condition,
product_description: description,
expected_price: price
}
$.ajax({
url: '/api/products_data',
type: 'post',
contentType: 'json',
headers: { Authorization: "bearer " + localStorage.getItem("token")
},
data: products,
dataType:'json',
success: function(data){
const dT = localStorage.setItem("bearer", data.token);
console.log(dT)
alert(data.message);
},
error: function (XHR, status, err){
alert(XHR)
}
})
})
});
我在后端使用express js
编辑: 我的专家jwt.verify代码也可能有助于找出问题所在
checkToken: (req, res, next) =>{
let token = req.get('Authorization') || req.body.token || req.query.token
if(token){
token = token.slice(7);
jwt.verify(token, process.env.JWT_key, (err, decoded)=>{
if(err) {
console.log(err);
res.json({
success: 0,
message: 'Invalid token'
});
}else{
next();
}
});
}else {
res.json({
success: 0,
message:'Access denied! Unauthorized user'
})
}
}
}