Size: a a a

2017 July 13

NK

ID:123020955 in 5minreact
и еще мне интересно как вы обходите код, который работает только на клиенте, например для работы с куками, на сервере ведь там ни window ни кук браузерных нету
источник

AE

Anton Egorov in 5minreact
ну если создавать через initialState в вызове createStore(), то нужно помнить о структуре своих редьюсеров, то есть если они поменяются, то нужно будет менять и в хэндлере
источник

AE

Anton Egorov in 5minreact
вообще люди оборачивают в
if (typeof window !== 'undefined') {}
источник

AE

Anton Egorov in 5minreact
а куки на клиенте зачем?
источник

AE

Anton Egorov in 5minreact
вроде как несекурно давать браузеру доступ к кукам
источник

NK

ID:123020955 in 5minreact
ну хранить токен, и проверять на его существование
источник

NK

ID:123020955 in 5minreact
и сервер тоже может получить эту куку в req.cookies
источник

NK

ID:123020955 in 5minreact
и решить что пользователь вошел
источник

AE

Anton Egorov in 5minreact
для этого делается раут на сервере, типа /api/auth/me, куда отправляется запрос с клиента, содержащий куку, например, через fetch это делается параметром credentials: 'same-origin'
источник

AE

Anton Egorov in 5minreact
и сервер отвечает данными, которые вытаскивает из токена
источник

AE

Anton Egorov in 5minreact
а давать браузеру доступ к кукам, насколько я понимаю, не рекомендуется
источник

AE

Anton Egorov in 5minreact
для этого на куке ставится флаг HttpOnly
источник

NK

ID:123020955 in 5minreact
это получается надо постоянно стучаться на этот роут чтобы понять пользовать еще авторизован?
источник

AE

Anton Egorov in 5minreact
не, на эндпоинты апи просто вешается middleware, проверяющий, есть ли у пользователя достаточный набор прав для этого действия
источник

AE

Anton Egorov in 5minreact
удобный вариант, например, jwt + jwt-permissions
источник

AE

Anton Egorov in 5minreact
если пользователь совершил действие какое-нибудь, а у него закончился токен, то разлогинить его
источник

NK

ID:123020955 in 5minreact
в данный момент у нас так идет авторизация

грузиться логин форма -> потом отпрвляется запрос на авторизацию -> вытаскиваю токен -> записываю в куки -> и если пользователь перезагрузит страницу то нода на сервере по той куке поймет залогинен пользователь или нет
источник

NK

ID:123020955 in 5minreact
у нас используется нода на сервере что бы рендерить статику, а есть еще сервер на рельсах, для рестов и прочего
источник

NK

ID:123020955 in 5minreact
я кажеться вас понял всей авторизацией занимается только серверный код,
источник

AE

Anton Egorov in 5minreact
а зачем вытаскивать токен и записывать его в куки, если сервер может ответить с заголовком Set-Cookie: name=value; ...
источник