React Routes重定向到外部URL的Auth链接

时间:2019-03-18 02:38:08

标签: reactjs react-router

我有一个代码示例,我在其中尝试重定向尚未登录的用户。我正在使用外部身份验证,以发送用户通过第三方身份验证系统登录。我知道react-routes具有Redirect选项,并且我知道它们仅重定向到路径名。有没有一种方法可以使重定向window.assign发生,从而将用户立即重定向到另一个页面?

提前谢谢!

const ProtectedRoute = (auth, component: Component, ...rest) => {
  return <Route
    {...rest}
    render={props => auth.isAuthenticated()
      ? <Component {...props} />
      : <Redirect
        to={{
          pathname: 'http://example.com/',
          state: { from: props.location },
        }}
      />
    }
  />;
};

1 个答案:

答案 0 :(得分:2)

您可以在组件的componentDidMount挂钩中评估日志记录道具,并使用window.location重定向到完全不同的URL。例如:

componentDidMount() {
    if(auth.isAuthenticated()) {
      return <Component {...props} />
    }
    window.location.assign('http://example.com/');
}