登录后,React Router v4重定向到请求的路径(从服务器端重定向)

时间:2017-06-16 23:38:10

标签: reactjs redirect react-router-v4 serverside-rendering

我使用react-router v4和redux。我设法用我的api服务器实现登录。目前,如果未经过身份验证,我将实施重定向。

为此,我创建了一个组件<AuthOnlyRoute>,如果用户没有登录,它基本上会返回<Redirect>组件。我保留&#34;来自&#34;页面到稍后,当用户登录时返回。

    <Redirect
      to={{
        pathname: '/login',
        state: {
          from: {
            ...otherProps.location, // this is an object where the pathname is kept
            message: 'please, log in', // message to show to the user
          },
        },
      }}
    />

如果我尝试输入<AuthOnlyRoute>然后登录,这就像魅力一样。当我在用户登录时渲染另一个<Redirect>时,我会被重定向到我的原始路线。我在<GuestOnlyRoute>中执行此操作,如果用户已经登录,则会重定向。

但是,因为在服务器端我使用<StaticRouter>没有历史记录(我想这是我的问题的根源,但不是很确定)并且当我直接请求需要的路径时auth,服务器正确地重定向到/login,但location对象没有from属性。因此,我不知道用户登录时的重定向位置。

我该如何解决这个问题?如何从服务器填充此location对象?

提前致谢

0 个答案:

没有答案