Я разрабатываю Restful API с использованием MEAN.js, который будет использоваться веб-сайтом AngularJS и мобильными приложениями Phonegap.
Я хотел бы, чтобы пользователь мог создать учетную запись и/или войти в систему с помощью Faceboo, Google и Twitter.
Я пытаюсь использовать тот же пример кода, который поставляется с начальным приложением MEAN.js, но со стороны узла, на порту 3000, обслуживающем только API, и веб-сайт, работающий на другом сервере (в настоящее время на порту 9000).
Я уже реализовал аутентификацию с помощью токена, используя пользовательскую локальную стратегию Passport, которая генерирует токен, и стратегию носителя для аутентификации вызовов API.
Но у меня проблемы с социальным входом, чтобы связать социальные учетные записи с существующими пользователями.
Из клиента Angular я вызываю конечную точку API, которая перенаправляет пользователя к провайдеру oauth (например, Twitter). Когда пользователь возвращается, моя подача ничего не знает о зарегистрированном пользователе, так как я больше не использую сеансы.
Я пытался вернуть токен провайдера клиенту, но у меня возникли проблемы с анализом URL-адреса anguler. Затем я закодировал другую страницу вне angular, которая получает токен провайдера и вызывает конечную точку API, отправляющую токен oauth и токен, выданный моим API. Это сработало для Google, но не для Twitter. Кажется, твиттеру нужна сессия.
В любом случае, каков наилучший подход для достижения того, чего я хочу? Как я могу заставить это работать?