Как быстро сохранить информацию о сеансе в пользовательском хранилище при обновлении страницы

У меня проблемы с сохранением аутентифицированных сеансов в хранилище 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 как-нибудь?

0 ответов

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