cara menambahkan token ke header dari penyimpanan lokal di file layanan sudut

cara menambahkan token ke header dari penyimpanan lokal di file layanan sudut

Ini dia API simpul saya yang saya panggil.....

{
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);}
    });
});
}

ini adalah file layanan sudut saya

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);
    }))
}

person Krishna Soni    schedule 25.03.2019    source sumber


Jawaban (2)


Jika masalah muncul saat Anda mencoba menambahkan header, kode saya berfungsi seperti ini:

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());
person Arm144    schedule 25.03.2019

Kelas HttpHeaders tidak dapat diubah, sehingga mengembalikan objek kloning di setiap operasi modifikasi (append(), set()...). Jadi, jika Anda ingin membuat instance kelas HttpHeaders yang kosong, Anda harus menetapkan ulang objek baru yang dimodifikasi saat melakukan operasi 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);
    }));
}

Selain itu, dalam situasi ini, Anda dapat membuat instance kelas HttpHeaders secara langsung dengan header yang Anda inginkan (pendekatan yang lebih bersih) seperti ini (Saya juga membuat sedikit modifikasi pada kode Anda (const alih-alih var, tanda kutip, dan pemformatan):

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))
      );
}
person Elias Garcia    schedule 25.03.2019