angular - canActivate 总是在 Angular 中登录表单?
问题描述
我是角度的新手。我正在使用 canActivate 守卫,但是当我将其应用于路由时,尽管守卫返回 true,但它总是将我带到登录页面。
请帮忙。
守卫代码:
import { Injectable } from '@angular/core';
import { CanActivate, ActivatedRouteSnapshot, RouterStateSnapshot, Router } from '@angular/router';
import 'rxjs/add/observable/of';
import 'rxjs/add/operator/catch';
import 'rxjs/add/operator/map';
@Injectable()
export class AuthGuard implements CanActivate {
constructor(private routes: Router) { }
canActivate(
alert('blocked');
return true;
}
}
路线:
{
path: 'list',
component: BatchListComponent,
canActivate: [AuthGuard],
},
解决方案
一个类可以实现的接口,作为决定是否可以激活路由的守卫。如果所有守卫都返回 true,则导航继续。如果任何守卫返回 false,导航将被取消。如果任何守卫返回一个 UrlTree,则当前导航被取消,并且新的导航开始到从守卫返回的 UrlTree。
您的身份验证逻辑不正确,最好在您准备好之前不要立即返回任何内容。否则它将不断失败。
推荐阅读
- git - 需要使用批处理脚本签出 GIT 最新标签
- javascript - 在 Express 中间件中捕获响应正文
- android - 如何修复 CardView 角半径问题?
- typescript - FormGroup 需要一个 FormGroup 实例错误
- asp.net - Asp.net 核心和身份服务器:外部登录不起作用
- boost-spirit - 进入提振精神;齐还是X3?
- python - 我必须将每一列存储在数据框中(8 个五分位)
- photoshop - Photoshop 脚本突然停止工作 - 错误 8000
- html - 为什么是价值形式被复制到所有其他输入?
- sql - unpivot a sql(列到行)