问题标签 [angular-canload]

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 投票
3 回答
3049 浏览

angular - Angular7:CanLoad Auth 防护挂起浏览器

我已经创建了一个 AuthGuard 服务并为其实现了 CanLoad 接口,如下所示

下面是我的应用路由模块

当我检查浏览器网络选项卡时没有下载文件,我看到一个空白的白页,下面是我在浏览器中看到的警告

0 投票
1 回答
661 浏览

javascript - 当我们返回带有 404 异常的 observable 时如何解决 canLoad 问题

我正在尝试在我的角度应用程序中的模块的 canLoad 事件中调用 API,

即使该 API 不可用并在网络中提供 404,我的页面仍在加载。如果有 404,我想避免这种情况,然后我想将我的页面重定向到某个错误页面。

在这里,如果 API 出现,那么我的代码按预期工作,但问题仅在出现 404 时出现。所以,我期待一个可以处理异常的块路由到 404 异常的错误页面。

0 投票
2 回答
950 浏览

angular - How to store user data in local storage using Capacitor’s Storage Plugin?

I am trying to add Firebase Authentication to my Angular app.

Here is the signUp() method in my AuthService:

With this method, I'm able to store newUser.uid in local storage using Capacitor's Storage plugin.

But I want to be able to store the same information as what is being stored below (namely localId, email, idToken & expirationTime:

Can someone please tell me how I can get these 4 values in my signUp() method?

0 投票
1 回答
887 浏览

angular - 使用 NgRx 加载子路由

我正在使用 Angular 9 应用程序,并且仅当我的应用程序状态(ngrx)具有属性时才尝试加载(或不加载)特定模块!= null

首先,我的路线中有一个 AuthGuard,但带有 canActivate。所以我希望“仪表板”模块仅在 mt AppState 有令牌时加载

这是我的路线文件

这是我的 AuthGuard。它 localestorage 没有会话,然后重定向到登录页面。

这是我想要在 AuthModuleGuard 中使用 canLoad 做的事情,但这不起作用

如果我这样做......应用程序给了我错误并且仍然加载两个文件

在此处输入图像描述

如果我这样做......应用程序永远不会完成加载

这是一个 STACKBLITZ 示例(包括我的文件夹结构)---> https://stackblitz.com/edit/angular-ivy-nasx7r

仅当我的商店中的令牌已设置时,我才需要一种加载仪表板模块(和其他模块)的方法,如果未设置,则重定向到登录。请帮忙

0 投票
2 回答
66 浏览

angular - 基于公共布尔数组的 Ionic Auth Gaurd canLoad

情况: 我正忙于开发一个在线课程,用户必须按顺序浏览一系列页面,但我想让他们不要导航到其他页面。如果他们尝试这样做,则当前页面将再次加载。

我的想法:我创建了一个公共布尔数组来跟踪用户的进度(下面的示例):

我的问题是:如何使用 auth 保护 canLoad 来禁止用户根据进度数组访问任何其他页面?

我有很多页面,很想使用一个 Auth Gaud 来执行检查,而不是为每个页面创建一个保护。

0 投票
1 回答
113 浏览

typescript - 我正在开发一个离子应用程序,我在其中使用身份验证保护。auth 守卫不让 screnn 加载

我在离子中使用身份验证守卫。这是我正在使用 canload 的 auth guads 服务中的代码

这是验证服务中的代码。它正在检查用户是否已登录,如果已登录,则状态为真

这是 app.routing.module.ts 中的代码。在这里,我使用 canload auth 保护,但它不让打开屏幕。当我删除 canLoad: [AuthGuard] 时,它可以正常工作,但是如果我单击应用程序中的后退按钮,它会返回登录页面。

这是 app.module.ts 中的代码,我在其中添加了离子存储、authguard 服务和身份验证服务

我的 ionic cli 是 5.4.16,框架是 @ionic/angular 5.2.3

0 投票
2 回答
34 浏览

angular - canLoad 守卫没有得到更新的值

UPD。解决了。我正在使用 2 个服务实例,但它导致了问题

我被 canLoad 守卫困住了。当我按下组件中的按钮时,我想更改服务中的错误值并让我的 Guard 加载模块。但是 guard 只接收到一个错误的值。我怎样才能让它工作,看看我什么时候更新服务价值?看起来它看不到值何时更改并在我更新它之前触发

这是我的 AuthGuard

我的身份验证服务

路由:

主模块

登录模块

登录路由模块

按钮