如果服务器返回401响应,则重定向到登录页面

Flá*_*ves 2 aurelia aurelia-router aurelia-fetch-client

如果是401响应,我如何拦截服务器端点响应并将aurelia应用程序重定向到登录页面?

我尝试了aurelia-fetch-client配置的"withInterceptor(responseError(){...})"方法,但我无法返回"new Redirect(loginPage)"...

任何人都知道如何做到这一点?

Jer*_*lez 5

这是一个例子:

import { HttpClient } from 'aurelia-fetch-client';
import { inject } from 'aurelia-framework'
import { Router } from 'aurelia-router'

@inject(HttpClient, Router)
export class UserService {
  http
  router

  constructor(http, router) {
    this.http = http
    this.router = router

    this.http.configure(config => {
      var self = this;
      config
      .withInterceptor({
        responseError(response) {
          if (response.status === 401) {
            self.router.navigateToRoute('login')
          }
          return response; // you can return a modified Response
        },
      });
    });
  }
Run Code Online (Sandbox Code Playgroud)