当前位置: 首页 > 知识库问答 >
问题:

发现路由器(用于中继现代)受保护的身份验证路由

欧阳德运
2023-03-14

根据React Router给出的示例,我正在尝试创建一个受保护的路由,当用户未被授权使用Find Router for Relay Modern时,该路由将重定向到/login

const PrivateRoute = ({ component: Component, ...rest }) => {
  return (<Route {...rest} render={props => {
    if (!props) return
    if (Component && props && props.viewer) {
      return (<Component {...props} />)
    } else {
      throw new RedirectException('/login')
    }
  }}
  />)
}

我用真实的登录逻辑替换了fakeAuth,但其余的都是一样的。这条路线就是不渲染。

发现路由器似乎是轻的例子围绕这个特定的问题。有什么想法吗?

共有1个答案

柯振濂
2023-03-14

我最终分割了我的登录和身份验证路由:

export default makeRouteConfig(
  <Route>
    <LoginRoute exact path='/login' Component={Login} query={LoginQuery} />
    <PrivateRoute path='/' Component={App} query={AppQuery}>
  </Route>
)

并扩展LoginRoute的路由,如下所示:

export class LoginRoute extends Route {
  render({ Component, props }) {
    if (!props) return undefined
    if (Component && props && props.viewer) {
      throw new RedirectException('/')
    }
    return (<Component {...props} />)
  }
}

PrivateRoute看起来基本相同,但在没有查看器的情况下,重定向不同。

它工作得很好。

Jimmy Jia,这个项目的创建者,还有一些其他的建议,我最终没有用到,但对未来的读者可能有用。请看我的闭刊。

 类似资料:
  • 根据这个例子,我试图在React路由器v4中创建一个经过身份验证的路由。为后代显示代码: 我的身份验证状态()在减速器中初始化为空对象,它来源于Redux存储。这就是我的pp.js的样子: 问题是状态以未定义的方式开始,然后,一旦安装了路由器组件,它将状态更新为。然而,这有点晚了,因为用户已经被重定向回登录页面。我还尝试用替换生命周期方法,但这也没有解决问题。 你有什么建议? 更新1:我解决这个问

  • 我正在react路由器v4上实现受保护的路由。我试图将“isAuthenticated”值从“Login”组件传递到“Authenticated”组件,但得到“false”值。 也许我用错了方法,任何人都可以帮助解决这个问题吗? 我的代码如下: 登录。js提供“isAuthenticated”控件 Authenticated.js需要获得“isAuthenticated”值(true)来呈现受保护

  • 我试图实现身份验证的路由,但发现React路由器4现在阻止此工作: 错误是: 警告:您不应使用

  • 我的 vue 路由器中有这条路由.js文件. 我使用 beforeEnter 选项重定向用户,如果store.state.is_login === true 第一个问题:所以当我在浏览器中输入网址时,我会重定向到/登录页面。这很好。但是当我单击徽标按钮时,这个beforeEnter功能不起作用。这是我的按钮,使用: 第二个问题是: is_login在我的store.state。is_login 我

  • 问题内容: 我是AngularJS的新手,在以下情况下我对如何使用angular-“ ui-router”感到有些困惑: 我正在构建一个包含两个部分的Web应用程序。第一部分是带有登录和注册视图的主页,第二部分是仪表板(成功登录后)。 我为home部分创建了一个带有角度应用程序和配置的,用于处理和查看,还有一个针对仪表板部分的文件,其应用程序和配置用于处理许多子视图。 现在,我完成了仪表板部分,并

  • 我一直在搜索net,试图找到任何定义如何在流星和响应路由器4中处理身份验证的地方。 基本上,我希望某些路由只对经过身份验证的用户可用。有相关文件吗? 阿西尔