и еще мне интересно как вы обходите код, который работает только на клиенте, например для работы с куками, на сервере ведь там ни window ни кук браузерных нету
ну если создавать через initialState в вызове createStore(), то нужно помнить о структуре своих редьюсеров, то есть если они поменяются, то нужно будет менять и в хэндлере
для этого делается раут на сервере, типа /api/auth/me, куда отправляется запрос с клиента, содержащий куку, например, через fetch это делается параметром credentials: 'same-origin'
грузиться логин форма -> потом отпрвляется запрос на авторизацию -> вытаскиваю токен -> записываю в куки -> и если пользователь перезагрузит страницу то нода на сервере по той куке поймет залогинен пользователь или нет