на бэке прежде чем обрабатывать запрос - тащи юзера по токену и закидывай айди в request, в resolve - функции запроса у тебя один из аргументов - это request и там ты уже сможешь определить че за юзер
ну тебе так надо будет в каждом запросе тащить из заголовков токен, потом по нему смотреть в редисе что за юзер и тд и тп - выносишь в отдельную мидлвару а в графкуэле уже пользуешься результатом, не зря умы придумали мидлварную архитектуру)
а про то что, логин/логаут - отдельно, остальные запросы отдельно - ну тут хз, можно конечно, делать query user { ... } и если 401 - mutation login (user, pass) { id, name, ... }
если с нуля писать - наверно лучше, ну я вот встраиваю в существующее кусок - там авторизация уже напилена, там получается только пробрасывать токен в запросы
а про то что, логин/логаут - отдельно, остальные запросы отдельно - ну тут хз, можно конечно, делать query user { ... } и если 401 - mutation login (user, pass) { id, name, ... }
а про то что, логин/логаут - отдельно, остальные запросы отдельно - ну тут хз, можно конечно, делать query user { ... } и если 401 - mutation login (user, pass) { id, name, ... }
Просто по сути чтобы получить токен - надо его создать. Вроде как мутация подходит, так же и с логаут - удаление (сброс) токена.
Просто по сути чтобы получить токен - надо его создать. Вроде как мутация подходит, так же и с логаут - удаление (сброс) токена.
а если у тебя вторая вкладка открыта - токен то создан, если создашь - будет 2 токена? тут надо тащить user { token } и его результат пробросить в клиента тогда?
А разве localStorage доступен не на всех вкладках? Просто перед каждым запросом добавлять токен в заголовок. На второй вкладке уйдёт мутация уже с токеном. В этом случае просто не создавать новый, а отправить существующий. Или вообще выбросить ошибку. Разве не так? Отдельные маршруты для логина в этом случае могут иметь такую же проблему вроде как