【发布时间】:2016-09-07 07:15:10
【问题描述】:
我正在使用 Ionic2 + Laravel。
我正在尝试制作一个“拦截器”,它将在我的所有 Http 请求中将来自 LocalStorage 的身份验证令牌 (JWT) 放在 Header 上。
所以,我用一个方法做了一个服务:
post(url : string, json : any) : Observable <\Response> {
var headers = new Headers();
var token = null;
this.local.get("token").then( (tk) => {
headers.append('Authorization', 'Bearer ' + tk);
var options = new RequestOptions({headers: headers});
token = tk;
});
-> wait the 'token' != null <-
return this.http.post(url, JSON.stringify( json ), options);
}
问题是:
当从该服务调用 post() 时,我期待“Observable http.post()”返回。
但是,我需要“this.local.get()”承诺完成解析,因为我需要 LocalStorage 中的令牌附加到 Header 上。
我怎样才能做出“this.local.get()”承诺,获取令牌,所以,声明 Observable http.post() 并返回它? (到外部函数)
我只是找不到办法。有什么建议么?谢谢:DD
【问题讨论】:
标签: angular