I have a working backend JWT setup on my PHP server, and I have finally after many hours gotten a result to log in console for angular, what I cant figure out now is how to manage this result and wait for the information to load to return a result, if I remove my subscribe function I cannot even render results which confuses me, Why cannot I simply use map?
Anyway here is my login function:
login(username: string, password: string): Observable<boolean> {
let result = false;
var postData = "email=" + username + "&password=" + password;
let headers: Headers;
headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
this.http.post('https://callum.tech/jwt/', postData, {headers: headers})
.take(1)
.map((res:any) => res.json())
.subscribe(
data => {
console.log(data.token)
if (data.token) {
console.log("token exists");
// set token property
this.token = data.token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify({ username: username, token: data.token }));
result = true;
}
},
err => {console.log(err)}
//,() => console.log("done!?")
);
console.log(result);
return Observable.of(result);
}
Now this will login with the correct information (I return a json in PHP under 'token' and there are no issues, this is shown in the console)
I am not sure how to wait, and get the proper response, the POST stuff seems to be really sensitive to having subscription etc or it wont post data, so I am not sure how to deal with this