0
我有高度的訪問令牌每一個請求自定義HTTP服務,我想用一個訪問令牌從ionic2存儲值檢索ionic2存儲的價值,並連接到一個值失敗
這是代碼從我的前兩個問題
所以在HttpClient的服務,我有
@Injectable()
export class HttpClient {
authtoken: string;
storage: Storage;
constructor(private http: Http, storage: Storage, private _authService:Authservice) {
this._authService.tokenEvent.subscribe(res => { //subscribing to token event in authservice
if (res) {
this.storage.get('token')
.then(token => {
this.authtoken = token
});
}
})
}
get(url){
let headers = new Headers();
this.createGeneralHeaders(headers);
return Observable
.flatMap( //retuns an error flatmap doesnt exist on observable
name => this.http.get(`${url}?access-token=${this.authtoken}`, {headers})
);
}
在authservice我在哪裏設置令牌
tokenEvent: Subject<any> = new BehaviorSubject(null);
login(user: UserModel): Observable<any> {
return this._http.post(this.loginurl + "mobile-login", body)
.map((response: Response) => {
let token = response.json().access_token;
if (token) {
this.storage.set('token', token).then(res => this.tokenEvent.next(true));
return true;
}
})
//.catch(this.handleError);
}
現在我可以以任何http請求容易地使用get從第一服務等
getChecklists(truckid): Observable<any> {
return this._httpclient.get(this.inspectionurl + "get-checklists")
.map(res=>res.json().data)
}
上述第一服務retuns該flatmap犯規存在一個錯誤。如何調整的第一個服務於另一個HTTP請求來使用,也可以從
兩個解決方案都基於令牌事件附加一個令牌this question和this question