@goju

Как сделать авторизацию у SSR приложения?

Как имплементировать авторизацию у SSR приложения? Интересует в приложениях типо Nuxt или next (желательно первое).

1. Как сделать все самому, т.е. на своем хостинге? Какой порядок аутентификации нужен, какие пакеты использовать, есть ли какие-то стартер киты, лучшие практики?

2. Какие сторонние сервисы есть, кроме Auth0?

3. Какие особенности такой авторизации в целом (тонкости настройки и тд)?

Желателен такой алгоритм: ввод имейла - верификация по линку - конец авторизации, пароль. Также пойдут Google/Facebook.
  • Вопрос задан
  • 1708 просмотров
Пригласить эксперта
Ответы на вопрос 1
mr_T
@mr_T
Web-разработчик
1. Для начала по SSR не нужно заморачиваться - пускай рендеринг всегда исходит из того, что пользователь не авторизован. Всё остальное можно подгрузить на клиенте при необходимости.
Какой порядок аутентификации нужен
- довольно странный вопрос, так как это решать вам в зависимости от того, какие условия задачи :) Предполагая, что вам нужно узнать, какие есть варианты, могу сказать, что в общем их 2 - стандартная для сайтов история с куками и сессиями или получение токена и дальнейшая авторизация по нему, то есть стандартная история для всяких REST API.
2. Если имеется в виду stateless авторизация на клиенте через OAuth, то есть замечательная библиотека для этого. Если не хочется тянуть такую большую зависимость, то можно и самому реализовать - там всё довольно просто. Могу подсказать конкретнее, если интересно. На бэкенде можно взять готовое решение, коих куча для любого языка/фреймворка/CMS.
3. Тонкостей особо нет. Получил токен или куку сессии и всё. Дальше уже всё зависит от того, что конкретно нужно реализовать.

Всё, что касается процесса подтверждения email относится к бэкенду, так что тут всё стандартно, и SSR ничего не меняет. Опять же, есть куча готовых решений для любой платформы. OAuth можно тоже полностью отдать бэкенду, но тут нужно понимать, что тогда не получится этот бэкенд использовать для stateless API.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы