AngularRouter路由守卫CanActivate始终返回false
创始人
2024-10-29 06:00:56
0

问题的原因是因为CanActivate守卫函数必须返回一个布尔对象,以允许或拒绝导航到相应的组件。如果该函数返回false,导航将被取消,并且将停留在当前页面。

下面是解决该问题的示例:

在路由定义中添加CanActivate守卫函数,在该函数中处理认证和授权逻辑,并根据结果返回true或false。

例如:

import { Injectable } from '@angular/core';
import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from '@angular/router';
import { AuthService } from './auth.service';

@Injectable()
export class AuthGuard implements CanActivate {
  constructor(private authService: AuthService, private router: Router) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
    if (this.authService.isLoggedIn()) {
      return true;
    }

    // 认证失败,重定向到登录页面
    this.router.navigate(['/login']);
    return false;
  }
}

然后在路由定义中使用AuthGuard守卫函数,例如:

import { NgModule } from '@angular/core';
import { RouterModule, Routes } from '@angular/router';

import { HomeComponent } from './home/home.component';
import { LoginComponent } from './login/login.component';
import { AuthGuard } from './auth.guard';

const appRoutes: Routes = [
  { path: '', component: HomeComponent, canActivate: [AuthGuard] },
  { path: 'login', component: LoginComponent }
];

@NgModule({
  imports: [RouterModule.forRoot(appRoutes)],
  exports: [RouterModule]
})
export class AppRoutingModule {}

这就可以解决CanActivate始终返回false的问题,并在路由守卫函数中处理认证和授权逻辑。

相关内容

热门资讯

第八分钟了解!牌乐门黑科技!真... 第八分钟了解!牌乐门黑科技!真是真的是有辅助攻略(有挂工具)-哔哩哔哩进入游戏-大厅左侧-新手福利-...
第四分钟了解!心悦app辅助工... 第四分钟了解!心悦app辅助工具!果然存在有辅助app(有挂方法)-哔哩哔哩一、心悦app辅助工具可...
第六分钟了解!亲友联盟能开挂不... 第六分钟了解!亲友联盟能开挂不!其实一直都是有辅助工具(竟然有挂)-哔哩哔哩1、操作简单,无需亲友联...
第1分钟了解!一起宁德麻将辅助... 第1分钟了解!一起宁德麻将辅助!一直一直总是有辅助软件(有挂方法)-哔哩哔哩所有人都在同一条线上,像...
第6分钟了解!广东雀神智能插件... 第6分钟了解!广东雀神智能插件安装价格!一直真的有辅助神器(有挂解密)-哔哩哔哩1、首先打开广东雀神...
一分钟了解!哈糖大菠萝可以开挂... 一分钟了解!哈糖大菠萝可以开挂吗!总是一直总是有辅助工具(真是有挂)-哔哩哔哩1、游戏颠覆性的策略玩...
第二分钟了解!兴动游戏辅助器!... 第二分钟了解!兴动游戏辅助器!一直是有辅助app(真是有挂)-哔哩哔哩1、游戏颠覆性的策略玩法,独创...
8分钟了解!川娱竞技血战辅助!... 8分钟了解!川娱竞技血战辅助!真是真的是有辅助工具(有挂助手)-哔哩哔哩1、实时川娱竞技血战辅助透视...
第九分钟了解!三哥玩透视辅助!... 第九分钟了解!三哥玩透视辅助!好像一直都是有辅助工具(竟然有挂)-哔哩哔哩亲,关键说明,三哥玩透视辅...
第八分钟了解!九九山城辅助!确... 第八分钟了解!九九山城辅助!确实存在有辅助教程(有挂详情)-哔哩哔哩1、进入游戏-大厅左侧-新手福利...