我是Angular2的新用户,尝试捕获401错误以进行令牌刷新,并计划重试原始请求...
这是我的authService.refresh方法:
refresh() : Observable<any> {
console.log("refreshing token");
this.accessToken = null;
let params : string = 'refresh_token=' + this.refreshToken + '&grant_type=refresh_token';
let headers = new Headers();
headers.append('Authorization', 'Basic ' + this.clientCredentials);
headers.append('Content-Type', 'application/x-www-form-urlencoded');
return Observable.create(
observer => {
this._http.post('http://localhost:8080/oauth/token', params, {
headers : headers
})
.map(res => res.json()).subscribe(
(data) => {
this.accessToken = data.access_token;
observer.next(this.accessToken);
observer.complete();
},
(error) => {
Observable.throw(error);
}
);
});
}
Run Code Online (Sandbox Code Playgroud)
然后我尝试在我的组件方法中使用刷新功能:
update(index : number) {
let headers = new Headers();
headers.append('Authorization', 'Bearer ' + this._authService.accessToken); …Run Code Online (Sandbox Code Playgroud)