问题标签 [angular-guards]
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.
angular - 检查用户在 Angular Guard 中是否为空
我有一个 Angular 管道,它在导航到特定路线之前检查用户是否是高级会员。
高级后卫:
但是由于没有登录用户,我总是在控制台中遇到很多错误user is null
。我如何检查用户之前是否登录过?
以下不起作用:
你有别的想法吗?提前致谢!
angular - 即使用户已经登录,身份验证保护也会阻止访问
当用户第一次使用他们的凭据登录时,auth guard 允许用户访问管理页面,但是一旦我刷新或转到另一个管理页面,auth guard 会将我重定向回客户端页面,说明我没有访问权限.
auth.guard.ts
我的身份验证守卫所做的是检查令牌是否存在于本地存储中。如果存在,则通过检索令牌、对其进行解码并将其添加到 get 方法来检查用户是否存在于数据库中。isAuthenticated 函数在第一次尝试时有效,但在随后的尝试中,它甚至根本没有运行,我真的很困惑为什么它没有运行。
身份验证服务.ts
observable - Angular 9 - Guard:canActivate 等到满足特定条件
我有以下代码
第一次res是未定义的,所以 canActivate 解析自己返回 false。我需要的是保持它监听直到res被评估,然后返回 true 以继续路由。我该怎么做?谢谢。
angular - 如何在 Angular 角色守卫中等待服务器授权?
在我的应用程序中,用户登录并接收到存储在本地存储中的 JWT。用户通过身份验证后,将对服务器进行以下调用,以确定用户的角色和功能(他们可以访问哪些页面)。
我的问题是,当用户想要打开一个页面(恢复旧会话、复制选项卡、将 URL 传递给其他人等)时,该应用程序没有授权详细信息并且必须首先请求它们,角色保护就会启动。这导致用户被重定向到登录页面。
预期的功能在路线中定义,例如:
里面的hasFunction
身体是GlobalConfigService
这样的:
中完成的授权AuthService
如下:
并authorize()
从中ngOnInit()
调用AppComponent
我相信解决方案是在用户通过身份验证时设置一些等待条件,然后在评估其他任何内容之前允许完成授权。这只需要发生RoleGuard
,还是会跨越整个身份验证/授权过程?
angular - 如何在不更改页面的情况下触发路由器守卫
我正在使用 Angular 9(常春藤)。我想在不实际更改页面的情况下触发路由器守卫。以 Angular 目前的能力,我该如何做到这一点?
以下是不起作用的示例代码,但应该让您了解我正在尝试做什么。
在模板中:
在组件中:
我也试过this._router.navigateByUrl(this._router.url + '?')
,但这也不会解雇警卫。
如何在不更改页面的情况下触发路由器守卫?
angular - 用于检查路线是否有状态的角度守卫
我有一个像这样导航的组件
一旦在那里我抓住了contructor中的数据
我想设置一个警卫来检查这些数据的存在,否则导航到其他地方
但这不起作用。你能帮我解决这个问题吗?
angular - 角度路由中的 CanActivate 保护,无需重复“CanActivate”属性
我想在路由中使用 canActivate 保护而不重复
canActivate: [AuthGuard],
如下代码
angular - 如何通过角度角色仅显示当前用户的组件
大家好,我有一个仪表板,其中包含所有组件的菜单:我希望当我以管理员角色登录时,我想显示所有组件,如果我以负责任的角色登录,我只想显示命令组件
我不知道该怎么做
这是我的 menu.ts import { MenuItem } from "./menu.model";
这是我的身份验证服务:
我的后卫:
路由组件:
这就是我的仪表板的样子: 图像
angular - angular2:为相同的路由和组件调用canDeactivate,但参数不同
在我的应用程序中,有多个链接具有相同的路由但具有不同的查询参数和片段。
例如,我有如下链接:
当我在上述路线之一并通过不同的参数导航到同一路线时,路线没有改变,但通过改变 RouteReuseStrategy 这个问题得到了解决。现在我想调用 canDeactivate 来更改路线,当我导航到其他路线时调用了 canDeactivate 但是当我通过不同的 queryParams 和片段导航到同一路线时,不会调用 canDeactivate !
angular - 如何使用 Spring Boot 项目在 Angular 中管理登录会话?
我正在使用 Spring Boot 开发一个 Angular 应用程序。我开发了一个以用户名和密码作为输入的登录页面。从后端对用户进行身份验证并发送成功和失败响应的 Web 服务。以及成功认证后显示的主页。
发生的事情是我也可以直接打开主页 URL 而无需登录,这不是正确的。
我需要的是实现一种机制来检查用户是否登录,并在此基础上显示 URL 页面或登录页面。