Я вроде сделал костыльными путями авторизацию, но она супер кривая, потому что иногда слетает. Также мое решение не безопасно. В интернете не смог найти подходящего варианта.
Задача: Нужна проверка роли пользователя, чтобы закрыть доступ к части функционала и страницам. Важно отправлять запросы как с клиента (React), так и с Server side rendering (NextJS) c header authorization 'Bearer ${accessToken}'. Также каждый день истекает accessToken и я его обновляю с помощью refreshToken.
Как я это сделал:
На каждой странице где требуется авторизация я прописал getServerSideProps, в котором запрашиваю из куки accessToken и если его нет пытаюсь запросить новый с помощью refreshToken (который опять же лежит в куки), если его нет то return 404 page. Если удачно получил accessToken передаю его в header authorization 'Bearer ${accessToken}'. И таким образом уже на сервере через middleware проверяю роль и токен, если все ок выдаю ответ.
Я пытался получать accessToken на стороне клиента (React), но тогда я не могу сделать авторизированный запрос в getServerSideProps.