I am using localStorage.getItem/setItem, for jwt authentication.But i have a problem…
getItem always returns the previous value…
My code is here…
auth.service.ts
login(user_model:any):Observable<any>{
let url = "http://localhost:3000/user/login";
let body = JSON.stringify(user_model);
let headers = new Headers({ 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*' });
let options = new RequestOptions({ headers: headers });
return this.http.post( url, body, options)
.map((response: Response) => {
let token = response.text();
localStorage.setItem('currentUser', JSON.stringify({ token: token}));
console.log("setToken",token)
});
}```
main.service.ts
getContacts():Observable{
var currentUser = JSON.parse(localStorage.getItem('currentUser'));
var token = currentUser.token;
console.log("getToken",currentUser.token)
let url = "http://localhost:3000/contacts/";
let headers = new Headers({ 'Authorization': 'Bearer ' + token, 'Content-Type': 'application/json' });
let options = new RequestOptions({ headers: headers });
console.log("headers",headers)
return this.http.get(url,options)
.map((response: Response) => response.json());
}```
My root page is loginpage but, getItem works before setItem