Как управлять реактивным маршрутизатором из экспресса

Я создаю приложение для реагирования, используя узел и экспресс-сервер. Я использовал JWT и паспорт для аутентификации. Поэтому, когда я когда-либо вхожу в систему, он возвращает токен авторизации. Так что теперь к внутренним конечным точкам можно получить доступ с помощью токена. Но я не знаю, как запретить пользователю переходить на другие маршруты (реагировать-маршруты), когда пользователи не вошли в систему. И я проверил конечные точки с помощью почтальона, чтобы получить доступ к конечным точкам, используя axios. Токен в настоящее время сохраняется в локальном хранилище браузера, как я могу отправить токен вместе с остальными вызовами axios?


person TRomesh    schedule 12.01.2017    source источник
comment
Возможный дубликат React Router Authorization   -  person Lyubomir    schedule 12.01.2017


Ответы (1)


Нашел!. Мне не нужно управлять из серверной части, вместо этого я могу использовать поддержку 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'))
person TRomesh    schedule 14.03.2017