问题标签 [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 回答
807 浏览

angular - Angular 2 从 CanActivate 服务导航到根目录

嗨,我有一个奇怪的问题,不明白如何解决。所以我有服务可以检查你在访问网络应用程序中的某个 url 时是否登录。如果不是,它会重定向到主页。

我的服务`

我的模块路由

路由器可以激活模块。路由

但是当你重定向到主页时,它给了我一个空白页。

0 投票
0 回答
181 浏览

angular - Angular2获取路由器是否有canActivate()

嗨,我需要检测我的溃败是否有 canActivate,但找不到如何做到这一点。

服务`

0 投票
0 回答
1742 浏览

angular - “ActivatedRoute”类型的参数不可分配给“ActivatedRoute”类型的参数

我收到一个错误

“ActivatedRoute”类型的参数不可分配给“ActivatedRoute”类型的参数。

属性“url”的类型不兼容。类型“Observable”不可分配给类型“Observable”。存在具有此名称的两种不同类型,但它们不相关。属性“源”受保护,但类型“Observable”不是从“Observable”派生的类。

我的打字稿如下...我在 navigateToList() 中遇到错误

0 投票
2 回答
1418 浏览

angular - Angular 2 路由器可以激活 Auth Guard

我在过去的 4 个小时里一直在寻找这个,但找不到任何答案。

我写了几个 Authguard,我希望能够告诉路由器,如果其中一些是真的,它应该给予许可,但是 Angular 2 路由器检查每个警卫是否为真然后给予许可,否则它将阻止链接,是有什么好的方法吗?我可以写几个身份验证守卫,但我认为这不是一个好主意。

例如,我希望/profile管理员和超级用户可以访问该页面,但我不希望普通用户访问该/profile页面

0 投票
1 回答
139 浏览

angular - 在请求完成之前调用 Angular2 Guard

我有一个 angular2 项目,

我使用 'canActivate' Guard 阻止了一些路由组件

例如:守卫检查用户是否登录并仅为注册用户阻止组件。

但是,我对守卫呼叫的时间有疑问。

当应用程序加载时 - 我调用 AutoLogin 请求(使用令牌登录)。警卫在请求完成之前打电话。

因此,如果用户使用警卫刷新页面,则警卫会在请求完成之前阻止该页面。

请求完成后有什么方法可以打电话给守卫吗?

- - 更新 - -

我的代码结构:

user.service 包括:

  1. 自动登录调用 - 返回 Observable
  2. EventEmitter 用于观察用户发生变化时的变化(登录、注销、更新等)
  3. 获取当前保存用户的函数

app.component 包括:

  1. 自动登录请求的构造函数调用 - 用于在进入站点时加载更新的用户

login.guard 包含:

  1. 检查用户是否现在登录(不仅是否保存了令牌)

我想在自动登录完成app.component中的请求后用户更改后再次检查警卫

0 投票
1 回答
78 浏览

ruby-on-rails - ruby on rails 在典型日期激活帖子

我想在典型日期(由用户安排)激活帖子并更新模型中的数据

例如。


每个帖子都有 valid_from、valid_until 和 act_status

act_status 有 3 个阶段(待定、激活和过期)

用户填写所有信息,

并且当“Time.now”遇到“valid_from”时,帖子将对所有用户有效,并且它的“act_status”将变为“activate”(@post.act_status = “activate”)

当 "Time.now" 遇到 "valid_until" 时,post 对其他用户无效并且 "act_status" 将变为 "expired"(@post.act_status = "expired")


我的问题是,rails 如何在典型日期自动更改值。

在我看来,我可以在“用户”执行某些操作时更改值(触发某些操作,例如 CRUD)

但在我的情况下,用户只是保存价值,rails 应该触发该操作。

我没有任何想法来解决它。

如果您有一些说明或指南,请告诉我

谢谢..


  • 另外在模型中存储“act_status”选项是否有效?

    Post.rb

    /li>
0 投票
1 回答
331 浏览

angular - CanActivate 如何在 Angular2 中工作?

TL;DR CanActivate 如何工作?

长版 这是我第一次看到客户端访问控制的实现。

在我目前使用的所有身份验证系统(例如 PHP 或其他服务器端编程语言)中,总是有一个函数检查用户是否已经登录,如果该函数返回 true,则服务器可以传递页面,否则用户被重定向到登录页面。

在这种情况下,客户端无法访问服务器代码,它只能发出请求并等待服务器组成页面,然后渲染它。

相反,Angular 的工作方式不同。它是一个使用 JavaScript 的客户端框架,每个人都可以看到它的代码。私人页面没有安全地放置在服务器内,唯一的服务器任务是交付 SPA,但它不能接受进一步的请求。

尽管如此,该框架仍将功能实现为 CanActivate,并且运行良好。所以我想知道是什么禁止我注入一些 JavaScript 代码和访问私人页面,即使我没有权限,或者更一般地说这个系统是如何工作的。在互联网上我没有找到足够的信息,也没有足够的技能来理解源代码。你能帮我澄清一下我的想法吗?

我可以问标题中的问题,但我更愿意告诉你我所知道的一切,所以如果有什么不对的地方,你可以纠正我。谢谢

0 投票
1 回答
15122 浏览

angular - Angular 2 canActivate 承诺命中远程服务

首先,我不确定这是处理此问题的最佳方法,但我正在寻找的是“/”上的路由保护,它检查用户是否登录,如果是,则将他们重定向到“/dashboard” . 我想在加载路由之前执行此操作,以避免屏幕闪烁,因为正在检查远程服务器上的身份验证状态。

我正在实现 canActivate 接口,但它没有按预期工作。它命中身份验证服务并返回用户,根据此测试代码应该重定向用户,但我在控制台中看到用户但没有重定向。

这是代码

0 投票
1 回答
979 浏览

angular - 当我在 Angular 2 中使用保护子路由时,浏览器完全被阻止

当我在“收获前”子路径中使用RoleGuard并打开浏览器时,浏览器完全被阻止,似乎处于无限循环中。我没有任何编译问题,也无法打开控制台查看我有什么错误。

可以在子路径中使用 canActivate 吗?还是我应该使用 CanActivateChild?CanActivateChild 没有这个问题。

角色守卫:

0 投票
2 回答
7665 浏览

angular - 未捕获(承诺中):状态为 401 未授权 URL 的响应

在此处输入图像描述我正在尝试为我的路由器实现 authGuard。但是当我干扰错误代码时,应用程序实际上会中断。我不知道如何解决它。需要帮助。

我的 AuthGuard

我的身份验证服务

我收到此错误,未捕获(承诺):状态为 401 未授权 URL 的响应。

我的错误截图

当我收到该错误时,我的页面全部空白。