- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有这个 AuthGuard。在这段代码中,我想创建一个条件。如果我的 resetpasss 不为空,我想在此处的 ResetPassIdComponent 中导航,否则我想在 LoginFirstComponent 中导航。
为此,我创建了 AuthGuard。
export class AuthGuard implements CanActivate {
myappurl: any;
resetpasss: any;
constructor(private router: Router, private auth: LoginService) {
}
geturl() {
handleOpenURL((appURL: AppURL) => {
console.log('Got the following appURL1', appURL);
this.myappurl = appURL
let url_1 = this.myappurl.toString();
let url_id = url_1.split("/").reverse()[0];
this.resetpasss = url_id
let LS = require("nativescript-localstorage");
LS.setItem(this.resetpasss)
// this.router.navigateByUrl('/resetPasswordRequest/' + this.resetpasss);
console.log('this.resetpass1', this.resetpasss)
});
return true;
}
canActivate(): boolean {
this.geturl();
if (this.auth.isAuthenticated()) {
return true;
}
console.log('this.resetpasss2', this.resetpasss)
this.router.navigate(['/outsidelogin/login']);
return false;
}
}
我点击电子邮件中的链接,此链接显示在 geturl(){..}
中。从这个函数 geturl(){..}
我得到一个 id 并保存在本地存储中。现在在 canActivate() 中,我想创建一个条件,在我想要的组件中导航。
你能问我如何创造条件吗?
我的路由.ts
const routes: Routes = [
{
path: 'home',
component: HomeComponent,
canActivate: [AuthGuard],
children: [
{
path: 'fp', component: FirstPageComponent
}
]
},
{
path: 'outsidelogin',
component: outsideloginComponent,
children: [
{ path: 'login', component: LoginFirstComponent },
{ path: 'register', component: RegisterComponent },
]
},
{ path: '', redirectTo: '/home/fp', pathMatch: 'full' },
{ path: 'resetPasswordRequest/:id', component: ResetPassIdComponent }
];
最佳答案
您可以在 CanActivate() 本身中添加条件。你能像下面这样尝试吗?
canActivate(): boolean {
this.geturl();
if (this.auth.isAuthenticated()) {
return true;
} else if(this.resetpasss){
this.router.navigate([this.myappurl]);
}else{
this.router.navigate(['/outsidelogin/login']);
}
}
关于angular - 如何在第一个函数和第二个函数中执行 canActivate(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53921510/
你好,我是 Angular 6 的新手,我遇到了一个关于提取用户的身份验证问题,如果没有登录就不会进入任何页面,我面临的问题是 Class 'NeedAuthGuard' incorrectly im
我写了一个 angular 4.3.0 typescript 库。在构建我的库时,我在 *.d.ts 文件中看到以下错误。 ERROR in [at-loader] ..\myLibrary\lib-
下面是我在 TypeScript 中实现 CanActivate 保护子句,当我编译这段代码时,它显示如下错误 A function whose declared type is neither 'v
我有这个 AuthGuard。在这段代码中,我想创建一个条件。如果我的 resetpasss 不为空,我想在此处的 ResetPassIdComponent 中导航,否则我想在 LoginFirstC
据我了解CanActivate Angular2 中的接口(interface)仅对路由更改有效。因此,如果我有一个要求用户登录的页面 p,我可以创建一个实现 CanActivate 接口(inter
我的路由器中有这些线路: .. canActivate: [MyGuard], path: "search", component: SearchComponent,
我有以下问题。我制作了一个 CanActivate Guard,如果您已登录,您可以“转到”债务组件。我的问题是,当我登录时,我想将用户重定向到债务组件(因为 RegistrationComponen
我正在使用 Observable返回 canActivate() .为测试设置了以下功能,它正确解析,组件显示。 canActivate(route: ActivatedRouteSnapshot,
最近,我一直在思考我正在开发的应用程序的安全性。客户端基于 Angular 构建,后端为 Rails API。据我所知,普遍的共识是,如果它在客户端,假设它可以被破坏。所以这让我想知道我何时以及是否应
我最近被 Angular 路由守卫卡住了。 CanActive 仅在页面加载时运行一次,并且不会在 protected 路由内的路由更改时运行。我认为这已更改,因为它过去常常在每次更改时运行。根据我在
我有这样的路线设置: export const APP_ROUTES: Routes = [ { path: '', resolve: {
我已经为我的 Angular 5.2 应用程序实现了 CanActivate 路由保护。如果它返回 true,则 URL 不会更改,但当它返回 false 时,URL 会更改并将路径附加到 URL。在
使用守卫,我尝试访问服务 但我无法在 canActivate 中返回一个 promise (它具有我无法更改的特定签名) 我的 autService 返回一个 promise ,因为它是异步的 我怎样
我有这样的路线: [ { path: ':orgName', children: [ { path: '', component: Ho
我有这样的路线: [ { path: ':orgName', children: [ { path: '', component: Ho
我有一个路径列表,我想将 CanActivate 应用于除某些路径之外的所有路径。是否有任何 Angular 丢弃某些路径的方法。目前我正在将 canActivate 应用到所有的 URL。如果有很多
I'm loading a books module with the following routing configuration (src/app/index.ts) -- 请注意,这是一个 s
我正在尝试在我的应用程序路由上使用 canActivate 功能,但是每当我编译该应用程序时,日志都会显示不断刷新的失败消息,我已将 console.log() 用于可见性。 我在这里遗漏了什么吗?
我有一个以这种方式使用惰性模块的应用程序: export const routes: Routes = [ { path: '', component: WelcomeCompon
我有一个关于 CanActivate 的问题 import { AuthService } from './auth.service'; import { CanActivate } from '@a
我是一名优秀的程序员,十分优秀!