如何从 express 控制 react-router

How to control react-router from express

我正在使用 node 和 express 后端构建一个 React 应用程序。我使用 JWT 和护照进行身份验证。因此,每当我登录时 returns 授权 token.So 现在可以使用 token.But 访问后端端点 我不知道如何限制用户移动到其他路由(反应路线)当用户未登录时 system.And 我已经使用邮递员测试了端点,以使用 axios 访问我的端点。当前保存在浏览器本地存储中的令牌,我如何将令牌与 axios rest 调用一起发送?

找到了!我不必从后端进行控制,而是可以在 reeact 路由器中使用 onEnter prop 与中间件一起使用来检查特定身份验证。如果 returns true 它将移动到您的路线,否则它将移动到您提到的默认路线。代码如下。

       function requireAuth(nextState, replace) {
          if (!auth.loggedIn()) {
            replace({
              pathname: '/login',
              state: { nextPathname: nextState.location.pathname }
            })
          }
        }

        render((
           <Router history={withExampleBasename(browserHistory, __dirname)}>
              <Route path="login" component={Login} />
              <Route path="dashboard" component={Dashboard} onEnter={requireAuth}/>
          </Router>
        ), document.getElementById('example'))