Как быстро сохранить информацию о сеансе в пользовательском хранилище при обновлении страницы
У меня проблемы с сохранением аутентифицированных сеансов в хранилище UserStore при обновлении страницы. В моем случае я обновляю хранилище пользователей при входе в систему и все в порядке, когда они щелкают по странице - но если они обновляют страницу - она теряет состояние пользовательского хранилища - я вижу, что гидрат / регидрат не запускается при обновлении страницы - это должно быть запущено в хранилище пользователя в этом случае?
Как в этом сценарии инициализировать / внедрить требование сервера на стороне пользователя в хранилище пользователей, чтобы оно загружало хранилище пользователей с правильным состоянием пользователя, вошедшего в систему при обновлении браузера?
class UserStore extends BaseStore {
constructor(dispatcher) {
super(dispatcher);
this.reset();
this.userInfo = {
emailPreferences: {}
};
this.registrationState = {
isLoading: false
};
this.resetPasswordState = {};
this.userAddressInfo = {
isLoading: false,
addNew: false
};
}
reset() {
// this.loginState = {};
console.log('resetting user');
console.log(this.loginState);
this.loginState = {
loginStatus: false,
isLoading: false,
errorMessage: ''
};
this.currentUser = null;
this.registrationStatus = REQUEST_STATUS.NONE;
this.registrationErrorMessage = null;
this.resetPasswordState = {};
this.loginState.loginStatus = false;
this.profile = null;
this.getProfileStatus = REQUEST_STATUS.NONE;
this.getProfileErrorMessage = null;
}
}
И в client.js
const dehydratedState = window.App; // Sent from the server
window.React = ReactDOM; // For chrome dev tool support
// expose debug object to browser, so that it can be enabled/disabled from browser:
// https://github.com/visionmedia/debug#browser-support
window.fluxibleDebug = debug;
debugClient('rehydrating app');
// pass in the dehydrated server state from server.js
app.rehydrate(dehydratedState, (err, context) => {
if (err) {
throw err;
}
window.context = context;
const mountNode = document.getElementById('app');
debugClient('React Rendering');
ReactDOM.render(
createElementWithContext(context),
mountNode,
() => debugClient('React Rendered')
);
});
Должен ли я вызвать регидратацию usertore/state в client.js как-нибудь?