0

我正在尝试调用 http GET 方法来检查用户是否与我的后端 NodeJS API 进行了会话,但我看不到正在发出的请求。

我在用户登录时设置了一个 observable,所以我的 AuthGuard 将首先检查它,如果它设置为 false,则调用后端以查看是否存在现有会话。

auth.guard.ts

canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) {

  this.authService.loggedIn.subscribe(currentState => {
    this.loggedIn = currentState;
  });

  if (this.loggedIn) {
    return true;
  } else {
    console.log('check for login');
    this.http.get(environment.apiURL + '/checklogin'
    , { withCredentials : true }
      ).map(user => {
          const resp = user.json();
          // login successful if there's a user
            if (resp.isLoggedIn) {
              this.authService.obsLoggedIn.next(true);
              return true;
            } else {
              this.router.navigate(['/login'], { queryParams: { returnUrl: state.url }});
              console.log('about to return false for authguard');
              return false;
            }
        });
      }
   }

应用程序.js

app.get('/checklogin', function(req, res) {
console.log('get from login ' + req.body);
req.session.user ? res.status(200).send({isLoggedIn: true}) : res.status(200).send({isLoggedIn: false});
});

我知道我的 apiURL 没有任何问题,因为进入登录页面并登录工作正常,并且我可以看到后端日志记录。

谁能看到为什么我的http请求不起作用?

4

0 回答 0