【问题标题】:How to control react-router from express如何从快递控制反应路由器
【发布时间】:2017-05-27 04:20:33
【问题描述】:

我正在使用 node 和 express 后端构建一个反应应用程序。我使用 JWT 和护照进行身份验证。因此,当我登录时,它会返回授权令牌。所以现在可以使用令牌访问后端端点。但是我不知道如何限制用户在用户移动到其他路由(反应路由)时没有登录系统。我已经使用邮递员测试了端点,使用 axios 访问端点。当前保存在浏览器本地存储中的令牌,如何将令牌与 axios REST 调用一起发送?

【问题讨论】:

标签: express react-router jwt axios


【解决方案1】:

找到了!我不必从后端进行控制,而是可以在 reeact 路由器中使用 onEnter 道具与中间件一起使用来检查某个身份验证。如果它返回 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'))

【讨论】:

    猜你喜欢
    • 2017-12-20
    • 2017-10-03
    • 2018-10-02
    • 2017-01-23
    • 2013-08-15
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 2019-07-26
    相关资源
    最近更新 更多