如何将令牌添加到角度服务文件中本地存储的标头中
这里是我的节点API。.
{
app.post('/add',auth,(req,res)=>{
const token = req.header('access_token');
console.log(req.header);
const decoded = jwt.verify(token, "secretkey",{expiresIn:'24h'});
item.create({
product:req.body.product,
desc:req.body.desc,
price:req.body.price,
quantity:req.body.quantity,
seller_id : mongoose.Types.ObjectId(decoded._id)
},(err,item)=>{
if(err){
return res.send(err);}
else{
res.send(item);}
});
});
}
这是我的角度服务文件
create(product_data: any) {
debugger
let headers = new Headers();
var token = localStorage.getItem('access_token');
headers.append('access_token',token);
return this.httpClient.post("/seller/add", JSON.stringify(product_data))
.pipe(tap(res=>{
console.log(res);
}))
}
答案 0 :(得分:0)
如果在尝试添加标题时存在问题,则我的代码正在使用以下代码:
const headers = new Headers({
'Content-Type': 'application/json',
'Authorization': 'Bearer ' + localStorage.getItem('token')
}); return this._http.post(url, body, { headers }).map((data: any) => data.json());
答案 1 :(得分:0)
HttpHeaders
类是不可变的,因此它在每次修改操作(append()
,set()
...)中都返回一个克隆的对象。因此,如果要实例化一个空的HttpHeaders
类,则在执行append
操作时应重新分配新的修改对象。
create(product_data: any) {
const token = localStorage.getItem('access_token');
let headers = new Headers();
headers = headers.append('access_token', token);
return this.httpClient.post("/seller/add", JSON.stringify(product_data), { headers })
.pipe(tap(res =>{
console.log(res);
}));
}
此外,在这种情况下,您可以使用所需的标头直接实例化HttpHeaders
类(更简洁的方法)(我也对代码(const
进行了适当的修改,而不是var,引号和格式):
create(product_data: any) {
const token = localStorage.getItem('access_token');
const headers = new Headers('access_token', token);
return this.httpClient.post('/seller/add', JSON.stringify(product_data), { headers })
.pipe(
tap(res => console.log(res))
);
}
答案 2 :(得分:0)
GOPATH