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的问题,并在路由守卫函数中处理认证和授权逻辑。

相关内容

热门资讯

透视透视!aapoker透视方... 透视透视!aapoker透视方法,微乐贵阳捉鸡麻将辅助,详情透视(有挂存在)-哔哩哔哩aapoker...
脚本教你!aapoker透视怎... 脚本教你!aapoker透视怎么用,aapoker怎么设置提高好牌几率(透视)其实真的是有工具(哔哩...
最终!约局吧能不能开挂,微乐小... 最终!约局吧能不能开挂,微乐小程序礼包码,详细透视(确实有挂)-哔哩哔哩1、任何约局吧能不能开挂透视...
透视解迷!德普软件,德普之星有... 透视解迷!德普软件,德普之星有辅助软件吗(透视)原来有教程(哔哩哔哩)破解侠是真的助透视。每个模型中...
截至目前!wepoker透视有... 截至目前!wepoker透视有用吗,微乐降序自建房辅助app,专业透视(有挂细节)-哔哩哔哩一、we...
脚本必备!aa poker透视... 脚本必备!aa poker透视软件,aapoker透视脚本下载(透视)都是是真的app(哔哩哔哩)1...
突发!红龙poker作必弊指令... 突发!红龙poker作必弊指令,在哪里下载微乐自建房辅助软件,辅助脚本(有挂细节)-哔哩哔哩1、全新...
透视分享!hhpoker可以控... 透视分享!hhpoker可以控制吗,hhpoker是正品吗(透视)一贯是真的器(哔哩哔哩)1、这是跨...
围绕透视问题!wepoker黑... 围绕透视问题!wepoker黑侠破解,微信小程序微乐安徽辅助苹果,科普脚本(有挂猫腻)-哔哩哔哩1、...
透视分享!wepoker公共底... 透视分享!wepoker公共底牌,wepoker辅助器官方(透视)确实是有方法(哔哩哔哩)运辅助工具...