2017-02-14 15 views
0

У меня есть сервер node с выражением для приложения SaaS. Приложение node/express служит для целевой страницы компании, регистрации или пользователей, для аутентификации, изменения имени пользователя и пароля. Все это построено с помощью node/expr e ss. Аутентификация выполняется с использованием passport.Аутентификация службы как для приложений, так и для API-микросервисов

Когда пользователь входит в систему, он перенаправляется на приложение панели мониторинга (само приложение SaaS), построенное с использованием React, react-route и Redux. Redux необходимо позвонить в node/express API, который в настоящее время находится в том же node/express.

API-интерфейсы также будут использоваться мобильным приложением для разработки с использованием React Native.

Мы хотим разделить службы на разные модули узлов, один для приложения SaaS, а другой - для обработки страницы компании, регистрации и т. Д. Движение к архитектуре микросервисов.

Наше сомнение заключается в том, как обращаться с аутентификацией пользователя. Нам нужен единый механизм аутентификации, который позволит пользователю использовать приложение SaaS React, а также будет служить мобильному приложению.

Если пользователь зарегистрирован в Интернете, он может использовать приложение SaaS с API. Если он зарегистрирован с мобильного устройства, он может использовать API с мобильного.

Это наш первый подход к разделению сервера и хотел бы найти рекомендуемый метод решения проблемы аутентификации. Естественно, если бы мы могли разделить службу аутентификации как еще один микросервис, который был бы очень интересным.

Заранее благодарим за помощь.

+0

Считаете ли вы использование JWT? – patrick

+0

Еще не известно. Пожалуйста посоветуй. – Mendes

ответ

2

Посмотрите на поставщиков аутентификации, которые делают это для жизни. auth0 и Stormpath - два примера, но их много.

Используйте их API для настройки приложения и вставьте его в экспресс. Пройдя этот процесс, вы поймете, какие функции вам могут понадобиться, и что вам нужно реализовать в API для их использования.

В конце обзора либо используйте одну из услуг, либо выполните вырезанную версию функций, которые вам нужны с Passport.js.

+0

Seens, который Auth0 решает все проблемы с проверкой подлинности, но я не мог узнать, как аутентифицироваться один раз для нескольких систем.Должен ли я хранить JWT и передавать его при вызове приложений availanle - например, приложения SaaS? – Mendes

1

Один из способов решить эту проблему - Auth0 и JWT.

Пользователи регистрируются с помощью Auth0 Lock, после чего мое веб-приложение хранит JWT в локальном хранилище. Это передается в заголовке каждого запроса ajax на сервер. Сервер отвечает за проверку JWT по каждому запросу. Чтобы свернуть это для приложения React Native, такой же подход можно использовать с react-native-lock.

Что касается специально паспорта, то это выглядит так: JWT libs, что может означать, что вам не нужно полагаться на что-то вроде Auth0.