【发布时间】:2017-09-29 10:40:27
【问题描述】:
我需要在我的Ionic 3 应用程序上正确处理401 错误。当应用程序几天未使用并且该用户尝试访问该应用程序之后,会出现下面提到的错误。这个应用程序有一个后端 Web API(django),它使用jwt 令牌来验证用户。
那么你能告诉我在Ionic 3 应用程序上处理这种用例的正确工作流程吗?我无法找到好的资源来在网上引用这个。如果你有什么要分享的,那就太好了。
我看到this URL 提到了subscribe subjects。但我不知道如何用 Ionic 应用程序实现这样的事情。请问有什么线索吗?
authProvider.ts
import { Injectable, } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import { Headers, RequestOptions, BaseRequestOptions } from '@angular/http';
import { Storage } from '@ionic/storage';
createHeader(headers: Headers) {
return new Promise((resolve, reject) => {
this.storage.get('loggedInUser')
.then((token: any) => {
if (token) headers.append('Authorization', 'token ' + token.token);
resolve(headers);
}, err => {
resolve(headers);
});
});
}
get(api) {
return new Observable(observer => {
let header = new Headers();
this.createHeader(header)
.then(() => {
let options = new BaseRequestOptions();
options.withCredentials = true;
options.headers = header;
this.http.get(api, options)
.subscribe(response => {
observer.next(response);
observer.complete();
}, (e) => {
observer.error(e);
});
})
})
}
控制台错误信息:
【问题讨论】:
-
你使用的是
Http,而不是HttpClient,对吧? -
@n00dl3 我正在使用这个模块
import { Http } from '@angular/http';
标签: angular typescript ionic2 ionic3