问题标签 [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 投票
2 回答
3359 浏览

angular - Angular 2 - CanActivate Observable 在订阅后获取价值

如果用户登录,我有一个“CanActivate”检查我的网络服务。

“CanActivate”返回 Observable。唯一担心的是,我需要恢复这个布尔值的值,以便能够在用户连接或不连接的情况下调整我的视图,而无需重做第二个请求......

谢谢您的帮助

0 投票
1 回答
1768 浏览

angular - Angular2:使用浏览器导航按钮时 AuthGuard 不起作用

我配置了一个简单的 AuthGuard,在“正常”浏览应用程序时工作得非常好(见下面的代码)。

现在想象一下:

用户导航到/content/secured-content,这需要身份验证 => 他被重定向到,/authentication/login因为checkLogin=> 他成功通过身份验证,因此被重定向回/content/secured-content=> 他单击“注销”按钮并成功注销(checkLogin现在将返回 false)。

现在重要的东西:当用户现在导航回安全内容页面(浏览器的“返回”按钮)时,既不canActivate也不canActivateChild也不canLoad被调用,路由器愉快地显示安全内容。受保护的内容本身依赖于在注销时被破坏的会话,因此它仍然是安全的,但我希望用户/authentication/login再次被重定向到该页面并期望该行为是诚实的。

你能告诉我我在推理中的错误在哪里,以及我的问题是否有适当的解决方案?

附件

路由配置片段:

auth-guard.service.ts:

ng--版本:

0 投票
0 回答
281 浏览

angular - 如果设置,CanActivate 和 CanActivateChild 会同时运行吗?

目前我的应用程序将为服务器设置一个 XHR 以获取用户信息。

我已将 CanActivate 和 CanActivateChild 设置为:

当我转到/a发送两次的 XHR 时,Angular 将同时并行运行 CanActivate 和 CanActivateChild 但不是CanActivate首先运行CanActivateChild

0 投票
1 回答
709 浏览

angular - 多个Guards调用异步函数

我有两个警卫,Guard1 和 Guard2。Guard1 返回一个 Observable,Guard2 返回布尔值。

canActivate:[Guard1,Guard2]

假设Guard2会返回false,Guard1的请求会自动取消吗?还是无论如何都会执行呼叫?

0 投票
1 回答
924 浏览

angular - canActivate 返回 Promise 或 Observable 块变更检测

当我添加返回 Observable 或 Promise(在本例中为 Promise)的 canActivate 时,路由可以正常工作,但它似乎会阻止(单击)事件、管道无法正常工作等......这些功能都可以作为只要我让 canActivate 就返回 true。有什么建议么?

可以激活

例如,材质搜索不适用于 canActivate/

例如,材质搜索不适用于 canActivate,但当我只返回 true 或取出 canActivate 时,它​​可以完美运行。

0 投票
1 回答
701 浏览

angular - 无法在 Angular 中使用 canDeActivate 或 canActivate

我正在尝试使用 canDeActivate 和 canActivate,并且我正在使用它,如下所示与 Angular 4 一起使用。我得到了no provider error同样的结果。实现有什么问题,或者干净简单地实现它的正确方法是什么。

错误更新:

0 投票
3 回答
351 浏览

angular - Guard 总是重定向到默认路由

我有一个检查用户会话的警卫。我正在从一个承诺中创建一个可观察对象并返回该可观察对象。

不幸的是,路由器总是在刷新时将我重定向到主页。我想这与可观察对象有关,因为当我简单地导航时,它会输入 if 并返回“Observalbe.of(true)”,这很有效。

我尝试用“return true”替换 observable,一切都按预期工作。

有任何想法吗?谢谢!

0 投票
1 回答
1584 浏览

angular - canactivate 保护角 2

我有一个有两个组件“登录”和“家”的角度应用程序。我想保护 home 组件,直到用户登录。

我有一个具有布尔变量“isUserLoggedIn”的服务。根据这个变量的值,我保护我的组件。

网络服务-

我的身份验证代码

登录组件

路由器

最后是我的应用模块

现在我使用硬编码文本作为用户名和密码。

我的问题是,即使登录组件将服务的“isUserLoggedIn”变量设置为“true”,auth-guard 仍然认为它是 false。因此我无法导航到“主页”组件。

0 投票
1 回答
311 浏览

javascript - Angular 2 中的 CanActivate 返回未定义

我需要canActivate在json加载之前不要进一步跳过,为此我检查canActivate是否未定义,它返回false,但在控制台中输出canActivate已传递且值为未定义。我做错了,我将不胜感激,谢谢。

我的http-data.service

canActivate: 未定义[![][1]] 2

在此处输入图像描述

0 投票
1 回答
238 浏览

angular - Angular 4 CanActivate 任何一个守卫都是真的

有没有办法在 Angular 4 中实现 CanActivate 保护,这样如果任何一个保护为真,则应该允许路由。我知道这可以通过对函数使用提供并在其中实现逻辑来实现,但是很难在应用程序路由模块类中的该函数中注入依赖项。我编写了一个处理身份验证和授权相关功能的自定义类。这个自定义类是可注入的,用于角色验证。

请推荐是否有框架级别的工具来实现这一点,因为如果所有守卫都为真,默认功能允许访问路由。