Как правильно реализовать работу с пользователем в изоморфном js приложении?
Рендер отдельно, API отдельно.
SSR - это просто proxy между клиентом и API.
Делаем обертку над http клиентом (если это fetch, или создаем новый если axios), и на клиенте используем как есть, а на сервере передаем туда заголовки (req.headers) от клиента. JWT придется сохранять в куки.
Всё, что связано с авторизацией, можно оставить только на клиенте. На сервере в таком случае всё должно рендериться так, как будто пользователь анонимус. Так делать совершенно нормально, если нет цели давать готовую разметку авторизованным пользователям с сервера.