我有以下工作方法来返回我的对象。
getWorkers(): any {
const url = ...
return new Observable<any>(emitter => {
this.http.get(url).subscribe(
result => {
result.json().map(...).forEach(...);
emitter.complete();
},
error => error);
});
}
现在,我通过JWT保护端点对后端进行了更改。当然,原始方法现在失败了,我已经添加了从REST API获取令牌。它正在返回正确的哈希值。问题是,我不确定如何将其插入原始响应中。
getWorkers(): any {
const url = ...
this.http.post(environment.sec, { credential: "1234" })
.subscribe(secRes => console.warn(secRes.json()));
return new Observable<any>(emitter => {
let authorization = null;
this.http.post(environment.secUrl, { credential: "1234" })
.subscribe(
secRes => {
authorization = secRes.json();
this.http.get(url, authorization).subscribe(
result => {
result.json().map(...).forEach(...);
emitter.complete();
},
error => error);
});
});
}
我尝试在第一次调用中发送一些结果,例如 authorization 对象的完整以及 authorization.token 字段。什么都没有产生不同的结果 - 它是未经授权的。事实上,我注意到程序甚至没有执行结果部分中的语句!
我可以做错什么?
NB。我想了解它的机制,所以我想在不使用任何第三方软件包的情况下解决它,包括通常建议的angular2-jwt。
答案 0 :(得分:0)
授权令牌需要在标题中传递
const headers = new HttpHeaders().set('Authorization', 'Bearer ' + Cookie.get('token'));
return this.httpClient.get(environment.api_url + 'orders', {
headers: headers}
);