Реактивный рефлюкс

Я новичок в ReactJS, и я следовал этому руководству: http://adamalbrecht.com/2015/07/20/authentication-using-json-web-tokens-using-rails-and-react/

После того, как я внесу некоторые исправления в код, чтобы он работал на моей установке, я могу успешно войти в систему. Но когда я перезагружаю страницу, SessionStore становится пустым.

Мой роутер:

import React from 'react';
import { Provider } from 'react-redux'
import { Router, Route, IndexRoute, hashHistory } from 'react-router';

// Base-Layout
import Base from './layout/base';

// Pages
import index from './pages/index';
import Login from './pages/Login';

import SessionStore from './stores/session_store.js';

function requireAuth(store) {
  return (nextState, replace) => {
    // let { auth } = store.getState();

    console.log(store.isLoggedIn());

    // if (!auth || !auth.loggedIn)
    //   replace({ pathname: loginPath, query: { return_to: nextState.location.pathname } });
  };
}

export default (
  <Provider store={SessionStore}>
    <Router history={hashHistory}>
      <Route path="login" name="Login" component={Login} />
      <Route path="/" name="Home" component={Base} onEnter={requireAuth(SessionStore)}>
        <IndexRoute component={index}/>
      </Route>
    </Router>
  </Provider>
);

Когда я захожу на страницу индекса после успешного входа в систему, я получаю "true", но когда я перезагружаю страницу, я получаю "false", может быть, любой может мне помочь.

1 ответ

Вы должны использовать localStorage вместо sessionStorage, Это потому что sessionStorage очищается каждый раз, когда заканчивается сеанс страницы, например, страница обновляется.

Другие вопросы по тегам