问题标签 [canactivate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
112 浏览

angular - CanActivate:带有套接字侦听器的可观察布尔值

我正在尝试从这样的服务器的套接字中获取属性

数据将返回 true 或 false 所以在我的路由守卫中我有这个

但它告诉我“声明类型既不是'void'也不是'any'的函数必须返回一个值。” 我一直在努力想办法让这项工作发挥作用,但我已经阅读了很多其他问题,但无济于事。控制台日志记录 res 确实给了我真假。

0 投票
0 回答
548 浏览

angular - Uncaught (in promise): TypeError: guard is not a function - when Class extends another Class

我在下面的相同配置在一天之前工作正常,并且在我的机器上不再工作。我检查了其他机器,它在这些机器上仍然可以正常工作。这就是我正在做的事情。

应用路由:

UserConfig 服务:(如您所见,它扩展了 DataProviderService)

数据提供者:

如错误所示,对于 UserConfigsService,防护设置为未实现 canActivate 的 DataProvideService。 错误截图

问题:

  1. 这个配置正确还是我遗漏了什么?

  2. 不明白为什么相同的配置可以在我的其他机器上运行?

  3. 有什么我应该尝试不同的吗?

更新:

进一步深入研究后,我发现每次注入 UserConfigsService 时,都会返回 DataProviderService 对象。我不确定为什么。

AppComponent 请求 UserConfigsService 但获得 DataProviderService。

复制 GitHub 链接

0 投票
1 回答
338 浏览

typescript - EmptyError:在角度保护中使用 takeWhile 时没有序列中的元素

我们有一个 canActivate 守卫,它应该返回 Observable(boolean)。

布尔状态是从服务获得的,我们需要以 1 秒的间隔轮询 3 次,直到我们收到响应“真”。

问题是每当 takeWhile 返回 false 时,我们都会收到以下内容

下面是导致问题的代码。RXJS 是 ^6.2.1 版本 Angular CLI 是 ^6.0.8 版本

0 投票
1 回答
563 浏览

angular - 停用 ngx-rocket angular 7 入门套件中某些页面的登录屏幕

我正在使用 ngx-rocket angular7 入门套件。它实施了一个守卫,如果我还没有登录,它将弹出登录屏幕。要实现注册页面,我不希望弹出登录屏幕,注册页面应该是公开的。有谁知道如何停用那里的登录屏幕?

0 投票
1 回答
674 浏览

angular - Angular 7 CanActivate Guards 故障转移

我的所有路线上都有 CanActivate 警卫,它们正在故障转移。

例如,我有两个警卫:

还有我的路线守卫

发生的情况是,如果AuthenticationGuard失败,它有时会检查IsAdminGuard,而不是在某人/login未经过身份验证时将其路由到,而是/home将他们发送到另一个错误页面,因为他们未经过身份验证并且不是管理员,警卫应该有在第一次失败时将他们踢出局。

AuthenticationService如果我删除了在调用时检查的身份验证 jwt isLoggedIn(),刷新/home路由并可以跟踪AuthenticationGuard返回false仍在调用,我可以 100% 重现该问题IsAdminGuard

这是代码isLoggedIn()

想法?

0 投票
1 回答
327 浏览

angular - 在 Nativescript 中使用 AuthGuard 时如何在组件中路由

我在我的 Nativescript 应用程序中使用 nativescript-urlhandler。当我放置一个路由器时,我的应用程序路由首先在 LoginFirstComponent 中,然后在我想要的 ResetPassIdComponent 中。

我想直接路由到我想要的组件。

AuthGuard.ts

AuthGuardReset.ts

我的 AuthGuardReset.ts 没有导航到 ResetPassIdComponent,它停留在 LoginFirstComponent 中。

在 component.ts 我有这个代码:

你能和我分享一下如何解决这个问题吗?

0 投票
0 回答
325 浏览

angular - 当我在 Nativescript 中使用 canActivate 时,路由不起作用

我在 Nativescript 中有一个项目。我的项目中的问题在于 CanActivate。使用 AuthGuard 时,我的 canActivate 不会在另一个页面中导航。

我有这个routing.ts:

在 AuthResetGuard.ts 我有这个代码:

在这个 ResetPassIdComponent .ts 我有

错误:当我点击http://xxxxxx.com/v1/resetPasswordRequest/11111时,我的应用程序没有打开,只显示 splash_screen 并且在控制台中只显示所有时间

请有任何想法,如何解决我的问题?

0 投票
1 回答
628 浏览

angular - How to routing in another component when use canActivate()

I want to navigate directly in here component ResetPassIdComponent whene I use canActivate(); Now, when I click for this component ResetPassIdComponent , my aplication navigate in first in /outsidelogin/login and in second in resetPasswordRequest/:id

#xA;

So in this canActivate() I have 2 conditions, first if I'm login and second if I'm not login navigate in this.router.navigate(['/outsidelogin/login']);

My routing.ts

#xA;

Please, Can you share with me any idea, how to solve my problem?

0 投票
1 回答
115 浏览

angular - 如何在第一个函数和第二个 canActivate() 中执行

我有这个 AuthGuard。在这段代码中,我想创建一个条件。如果我的resetpasss 不为null,我想在ResetPassIdComponent 中导航,否则我想在LoginFirstComponent 中导航。

为此,我创建了 AuthGuard。

我单击电子邮件中的链接,此链接显示在geturl(){..}. 从这个函数geturl(){..}我得到一个 id 并保存在 localstorage 中。现在在 canActivate() 中,我想创建一个条件,在我想要的组件中导航。

你能问我如何创造条件吗?

我的路由.ts

0 投票
2 回答
986 浏览

angular - 在 canActivate() 内不返回布尔值的 Observable 处理 HttpErrorResponse

我正在尝试创建一个canActivate()函数,它将:

当状态码401来自Observableie whenHttpErrorResponse被提升时。

===============================================

这是我的服务:

响应数据是一个 Json blob,可以是一个401200状态代码,这是 Python 代码:

我目前有这个代码ERROR Error: Uncaught (in promise): HttpErrorResponse在状态代码为时失败401

我正在使用角度 7.0.4。