1
我想知道如何在調用安全的URL時重定向到登錄頁面,因爲知道您不能將navController注入服務Ionic 2當我打電話給一個安全的URL時如何重定向到登錄頁
我創造了這樣我的擴展HTTP服務:
@Injectable()
export class CustomHttp extends Http {
constructor (backend: XHRBackend, options: RequestOptions) {
let token = localStorage.getItem('auth_token');
options.headers.set('Authorization', `Bearer ${token}`);
super(backend, options);
}
request(url: string|Request, options?: RequestOptionsArgs): Observable<Response> {
let token = localStorage.getItem('auth_token');
if (typeof url === 'string') {
if (!options) {
// let's make option object
options = {headers: new Headers()};
}
options.headers.set('Authorization', `Bearer ${token}`);
} else {
url.headers.set('Authorization', `Bearer ${token}`);
}
return super.request(url, options).catch(this.catchAuthError(this));
}
private catchAuthError (self: CustomHttp) {
return (res: Response) => {
if (res.status === 401 || res.status === 403) {
}
}
return Observable.throw(res);
};
}
}
謝謝
很明顯,OP不希望在任何他稱之爲服務的地方都有代碼導航到登錄頁面。相反,他/她希望他的自定義Http自動導航到登錄頁面,如果沒有登錄。 – n00b
我的意思是成功回調,我沒有指出任何關於錯誤 –
抱歉,我的意思是登錄頁面。你的建議是在每個使用此服務的組件中設置導航根目錄的代碼。這是OP試圖避免的。 OP想要的可能是反對MVC的定義 – n00b