Единый вход для проекта с отдельным бэкендом и внешним интерфейсом - PullRequest
0 голосов
/ 26 июня 2018

Мой веб-проект разработан в виде двух приложений: я) Бэкэнд-приложение в Node.js ii) Приложение веб-интерфейса в Angular.js

Возможно ли два варианта единого входа в проекте или потребуется объединить и бэкэнд, и внешний интерфейс как одно приложение.

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

Ответы [ 2 ]

0 голосов
/ 26 июня 2018

Openid Connect работает очень хорошо в вашем сценарии. Внешнее приложение Angular инициирует SSO с сервером openid connect и получает и id_token, и access_token. Приложение углового интерфейса использует id_token в качестве токена аутентификации. После того как пользователь авторизован для доступа к внешнему приложению, приложение Angular вводит access_token в заголовок авторизации, чтобы вызвать внутреннее приложение Node.js. Если access_token - JWT, Node.js может локально проверить access_token. Если access_token является непрозрачным токеном, обычно Node.js вызывает API интроспекции удаленного токена в openid conenct провайдере для проверки access_token. Таким образом, внешний интерфейс angualr - это типичный поток соединения openid, а внутренний Node.js - служба ресурсов OAuth.

0 голосов
/ 26 июня 2018

Держите API без сохранения состояния и используйте аутентификацию на основе токенов.

Хорошее чтение: https://auth0.com/docs/design/web-apps-vs-web-apis-cookies-vs-tokens

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...