Реактивный рефлюкс
Я новичок в 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
очищается каждый раз, когда заканчивается сеанс страницы, например, страница обновляется.