Где можно хранить access token - да где угодно, если он короткоживущий. Где можно хранить refresh token - лучше всего там, где js не может "дотянуться". Например, в http-only cookie. При соблюдении этих условий возникает небольшое затруднение с ssr движками. А именно: Мы должны создать проксирование между клиентом и ssr этой куки. А есть второй вариант, который очень упрощает жизнь:

  • На этапе ssr отрисовываем только то, что нужно индексировать.
  • Всё, что требует авторизации, делается только на клиенте. С третьей версии у nuxt есть гибридный рендеринг, когда определенные роуты в принципе не проходят этап ssr: https://nuxt.com/docs/4.x/guide/concepts/rendering#hybrid-rendering Если же нам нужно делать авторизированные запросы к ssr-части - откладываем их до onMounted. Да, появляются дополнительные "лоадеры" и прочее на клиенте. Но разрабатывать такое намного проще, чем "прокидывать" куки для клиент->ssr->api->ssr->клиент направления.