gpt4 book ai didi

aurelia - 来自其他应用程序根目录的路由器authorizeStep不断触发

转载 作者:行者123 更新时间:2023-12-02 18:34:49 26 4
gpt4 key购买 nike

我的 Aurelia 项目分为 2 个应用程序根目录,两个应用程序根目录都有自己的路由结构。应用程序根目录 1 包含您无需进行身份验证的所有屏幕(登录、重置密码等)应用程序根目录 2 包含所有其他屏幕。

当您未使用authorizeStep 进行身份验证时,我将阻止访问应用程序根目录2 上的路由。在此步骤中,当您未经过身份验证时,我将根设置为应用程序根 1。应用程序根目录 1 有一个登录 View 作为默认路由,因此效果很好。因此,当您未经身份验证并尝试导航到应用程序根目录 2 中的深层 url 时,会发生这种情况:

  1. 应用根目录 2 配置其路由并尝试导航至深层网址
  2. authorizeStep 触发,您未通过身份验证,路由被取消,应用根目录 1 发生 aurelia.setRoot()
  3. 应用根目录 1 配置其路由器并将您导航至默认路由(登录页面)

问题是手动注销。单击位于应用程序根目录 2 中的此按钮时。我清除了用户数据,因此您不再经过身份验证。接下来,我手动将根设置为应用程序根 1,然后出现无限循环:

  1. 应用根目录 1 配置其路由器并将您导航至默认路由(登录页面)
  2. authorizeStep 从应用根目录 2 触发!,您未通过身份验证,路由被取消,应用根目录 1 发生 aurelia.setRoot()
  3. 应用根目录 1 配置其路由器并将您导航至默认路由(登录页面)
  4. ...

问题在于,在根 1 中导航时,根 2 中的authorizeStep 会被触发。我寻找了一种删除authorizestep 的方法,但我认为框架当前并未公开这一点。我觉得非常奇怪的是,只有当单击注销、深度链接和重定向到登录按预期工作时才会出现此问题。

为了清楚起见,我创建了一个可重现的要点,单击注销按钮,您将看到控制台无限重复授权步骤。

https://gist.run/?id=1a551dcc4bec7d191ab680a937b19cfc

最佳答案

事实证明,您需要自己清除这些步骤,这不是在 aurelia.setRoot() 内部调用的 router.clear() 中完成的。

幸运的是,您实际上可以自己完成此操作,方法是: this.pipelineProvider.reset();

但我认为这种行为不合逻辑,因此我为其创建了一个问题:https://github.com/aurelia/router/issues/465

关于aurelia - 来自其他应用程序根目录的路由器authorizeStep不断触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41956911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com