问题标签 [auth-guard]

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 投票
4 回答
1057 浏览

angular - AuthGuard 在角度 7 中路由到“”

我正在尝试对我的应用程序实施身份验证保护。

我在 authGuard ts 文件中编写的代码是:

我的路由模块如下:

所以,据我所知,auth guard 工作正常。但即使 auth 守卫返回 true,我的应用程序也会重新路由到localhost:4200而不是localhost:4200/me

我无法找到它的原因。请帮我解决它。

0 投票
2 回答
5025 浏览

typescript - 行为主体未在 .next(value) 上更新订阅者

我在获取 Behavior Subject 以更新 .next(value) 调用中的订户时遇到问题。

我是打字稿的新手,但我想我一定是遗漏了一些小东西。从我所见,这似乎是正确的。

网站上有很多这样的问题,但没有一个能解决我的问题。这是一个例子。订阅者没有收到来自 .next() 的值

RestService 仅放在 app.module.ts 提供者数组中。

验证保护文件 (services/auth-guard.service.ts)

部分休息服务文件 (services/rest.service.ts)

在 canActivate 中,我有一个控制台日志显示 this.authenticated 始终为假,但如果我在此下放置另一个订阅者调用并打印另一个变量,我可以看到它现在实际上是真的并且它已正确更新。我是否在这里遗漏了导致已验证身份无法更新的内容?

一些额外的信息。这是我的 app.module.ts

还有调用 auth guard 服务的路由(app-routing.module.ts)

最后这里是调用的函数,它实际上将身份验证主题设置为 true (login/login.page.ts)

0 投票
0 回答
314 浏览

ionic-framework - Ionic 4 上的 AuthGuard 无法按预期工作

我使用Ionic 4制作移动应用程序。我尝试制作身份验证系统并使用身份验证保护和身份验证服务来执行此操作。

当我登录应用程序时,我必须在登录按钮上单击两次。

好像路由器第二次考虑到了守卫。我不认为它来自 Promise。我不知道它来自哪里。

AuthGuard

身份验证服务

仪表板路线

认证登录模板

登录页面控制器

0 投票
0 回答
106 浏览

angular - 由于身份验证保护而陷入循环

我正在使用路线将用户重定向到允许的视图。但是没有权限的用户可以通过在地址栏中提供 path[route] 来路由到它。

我尝试使用 auth-guard,但使用它会导致我进入一个连续循环,即 /[somePath] 触发 canActivate 并检查权限,并在解析路由后再次进入 auth-guard,因为 canActivate 存在于所有路由中。

下面是一段代码[我试过的] -

app.routing.ts

auth-guard.ts

}

请帮助我了解如何限制用户导航到不允许他们访问的视图。

0 投票
1 回答
82 浏览

angular - Authguard 阻止导航注册路线。它总是重定向到登录页面

我有两个单独的页面用于登录和注册。我没有为这两个页面应用 AuthGuard。即使那样,当我导航到注册时,它也总是重定向到登录页面。

我试图检查 AuthGuard 类中的当前 url,以防止在 url 与注册页面匹配时重定向。但这对我不起作用。

这些是我的路线

预期的行为是 AuthGuard 不应在未应用的地方被触发。

0 投票
1 回答
504 浏览

angular - Angular 8 .next 似乎没有按预期工作

我正在尝试创建一个对用户进行身份验证并将令牌存储在 localStorage 中的服务。我希望其他服务(特别是 auth guard)能够访问当前用户,所以我设置了身份验证服务的构造函数,如下所示:

当用户使用 http POST 请求登录时,如果成功,请调用以下next方法currentSubject

问题是,它似乎不起作用。如果我检查我的身份验证守卫,它只会将用户视为 null。只有当我刷新时才会填充它(因为身份验证服务构造函数)。

我的身份验证警卫看起来像这样:

有谁知道我做错了什么?


如果我将canActivate方法更改为:

它应该可以工作,但它只是控制台日志显示null,所以它只停留在登录页面上。

我看到你可以.value从这篇文章中得到: https ://medium.com/@luukgruijs/understanding-rxjs-behaviorsubject-replaysubject-and-asyncsubject-8cc061f1cfc0

0 投票
1 回答
5037 浏览

angular - Angular 7 导航正在相应地更改 URL,但不加载组件

在尝试了所有其他解决方案之后,我仍然遇到我的问题:尝试导航到其他组件,URL 已更改,但我停留在同一页面上,目标组件未加载

解释:

当用户到达 App 时,基于会话存储,他转到HOME 组件LOGIN 组件

  • 如果他登陆 HOME 组件,EVERYTHING's work,他可以在应用程序的任何地方导航。

  • 否则,如果他登陆 LOGIN,然后登录自己,然后重定向到 HOME 组件,然后就没有更多的导航工作,只有 url 正在改变。

我使用了延迟加载和 authGuard。

控制台上没有错误。

上述两种情况之间的路由器跟踪日志是相同的(我的意思是在第二种情况下,NavigationEnd 组件是正确的目标组件,但它从未加载过)

这是我的app-routing.module.ts

这是我的auth-guard.service.ts

myapp.component.ts直接重定向到 HOME 组件,因此调用 authGuard 并在需要时重定向到 LOGIN:

问题是当我转到login.component.ts并单击日志功能时,如果用户经过身份验证,它会转到 HOME 然后没有导航工作:

你有什么想法 ?

我已经尝试过..-->this.router.navigate([../home])

0 投票
1 回答
1302 浏览

angular - 如果用户在 AuthGuard 的 canActivate 功能中处于空闲状态,则 Angular 中的会话超时

当前在应用程序中,如果用户未通过身份验证,则他无法继续任何路线,但如果他/她已通过身份验证,则可以进行导航。这是通过 auth guard 中的 canActivate 函数实现的。如果我想在 5 分钟后用户空闲的情况下也有会话超时,那么通过 canActivate 函数和 Auth-Guard 实现它的方法是什么?

0 投票
1 回答
418 浏览

angular - Angular 7 - 刷新浏览器时AuthGuard不起作用

我正面临 MEAN 堆栈应用程序的 AuthGaurd 问题。canActivate当我浏览页面链接时,AuthGaurd工作正常。但是当刷新页面时 - 页面不工作(无限期保持加载状态)

这是 AuthGuard 实现 -

这是我的登录服务,它也可以正常工作 -

我无法弄清楚这个问题。提前致谢!

0 投票
2 回答
149 浏览

angular - Angular 如何从 authguard 中检索?

我有一个带有 jwt 身份验证的 Angular-springboot 程序,我想知道如何在 Angular 上登录后,恢复登录者的数据,例如用户名。我查看了一些关于 authguard 和 httpinterceptors 的指南,但我对 rigurado 有点困惑,你们中的任何人都可以给我发一个它检索数据的代码吗?我有从指南中复制的服务,这些服务是 auth-guard、authentication、basic-auth-http-interceptors 和 httpclient 我认为是非常标准的,但如果需要我会发布它们