如何使用spring拦截角度2应用程序中的“401授权”,然后将用户重定向到登录页面?
例如,如果我没有连接,我会尝试访问某个页面。拦截器必须迫使我连接。我希望这个拦截器能够监听服务器返回的所有401状态。
答案 0 :(得分:0)
如果您不想使用任何外部包,您只需创建自己的休息http服务。
您需要做的就是创建一个扩展Http的服务类。
示例:
export class RestHttp extends Http {
constructor(backend: ConnectionBackend) {
super(backened, new RequestOptions (...))
}
get(url: string) {
return this.catchError(super.get(url));
}
(delete, post, put) (...)
private catchError(res: Observable<Response>) {
return res.catch((err) => {
if (err.status >= 400) {
*your logic*
}
return Observable.throw(err);
});
}
现在你必须在模块中提供它。像这样:
<强> app.module 强>
(...)
providers: [
{provide: Http, useFactory: httpFactory, deps: [...]
(...)
export function httpFactory(backend: XHRBackend) {
return new RestHttp(...)
}