• Social Login и Angular - на клиенте или сервере?

    @vorotech Автор вопроса
    ꧁꧂Лариса ꧁꧂, добрый день,
    мы остановились на варианте 2 - backend
    Бекенд у нас на Nestjs (Nodejs+Express+TypeScript), методы аутентификации было легко реализовать с помощью passport.js

    Вот так решили задачу реферальных ссылок:
    - новый клиент нажимает на реферальную ссылку типа https://example.com/join/blablacode
    - frontend сохраняет код в local storage и делает редирект клиента на https://example.com/register
    - если клиент регистрируется с помощью email + password, то реферальный код отправляется на backend вместе с POST запросом
    - если клиент выбирает логин с помощью социальной сети, то он переходит по ссылке https://example.com/auth/facebook (которая уже обслуживается backend а не frontend )
    - после успешной аутентификации backend делает редирект на frontend , и frontend делает дополнительный запрос на backend , чтобы установить для нового клиента реферальный код.

    То есть, frontend в данном случае сам выполняет роль "сессии", а backend ничего не хранит. В нашем случае выполнять такой код с frontend не страшно, реферальный код установится только раз, если еще не был заполнен.
  • Как использовать passport + ajax?

    @vorotech
    Код на стороне сервера (обработчик app.post('/login',...) и стратегия) выглядят верно.
    Можете дополнить, возвращаются ли ожидаемые сообщения и HTTP статус коды в отладочной консоли?
    Возможно, проблема уже в самой форме (отсутствие библиотеки или неправильный конфиг для показа ошибок в форме).