2017-01-12 5 views
0

Ich baue eine react-Anwendung mit Knoten und Express-Back-End. Ich habe JWT und Reisepass für die Authentifizierung verwendet. Also, wann immer ich mich anmelde gibt das Autorisierungs-Token.So jetzt die Back-End-Endpunkte konnte mit dem Token zugegriffen werden. Aber ich weiß nicht, wie der Benutzer von anderen Routen (react-Routen) bei den Benutzern zu beschränken sind nicht in das System eingeloggt. Und ich habe die Endpunkte mit Hilfe von Postman getestet, um auf die Endpunkte im mit Axios zugreifen. Das Token wird derzeit im lokalen Speicher des Browsers gespeichert. Wie kann ich den Token zusammen mit Axios Restanrufen senden?Wie zu steuern react-router von express

+0

Mögliches Duplikat von [React Router Authorization] (http://stackoverflow.com/questions/32898264/reac-router-authorization) – lustoykov

Antwort

0

Es gefunden !. Ich muss nicht vom Back-End steuern, stattdessen kann ich OnEnter Prop in Reeact Router verwenden, um mit einer Middleware zu verwenden, um nach einer bestimmten Authentifizierung zu suchen. Wenn es wahr zurückgibt, wird es auf Ihre Route verschoben oder es würde sich auf Ihren Standardrouter bewegen. Der Code ist unten.

 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')) 
Verwandte Themen