Проблема:
Обслуживание защищенного API для клиентского приложения с использованием только локальной стратегии проверки подлинности.
Красные стрелки являются частью пробела знаний.
Контекст:
Это --- client.example.com
делает POST до api.example.com/login
, где при успехе client.example.com
может получить доступ к сервису GET, например api.example.com/secret
.
Идея!
Импликация OAuth 2.0 с гибридным типом гранта, сидящим перед API.
Почему гибрид?
-
Это не будет
Implicit Grant Flow
akaClient-Side Web Applications Flow
, потому что перенаправление на сервер API также не допускается. (т.е.) "Доступно ли вам так или иначе доступ к вашим данным?" -
Это не будет
Resource Owner Password Flow
, потому что вместе с запросом передаются идентификатор клиента и клиентский секрет, поэтому предполагается, что клиентское приложение является серверным.
ОК... так что о чем-то другом?
Что делать, если мы использовали токен CRSF при загрузке страницы клиентского приложения, а POST с учетными данными пользователя тоже OAuth 2.0 аутентификационной точки для обмена токеном доступа? После успешного входа в систему вы должны аутентифицировать каждый последующий запрос с помощью токена доступа и токена CRSF.
Хорошая библиотека Node.js OAuth 2.0, которую я нашел:
https://github.com/ammmir/node-oauth2-provider
Помогите мне!
Я не могу найти рабочий пример проверки подлинности, который решает эту проблему! Направьте меня в правильном направлении?
В конечном счете, цель здесь - слишком аутентифицировать приложение на стороне клиента для REST api, используя CORS с локальной стратегией --- то есть имя пользователя и пароль --- даже если вышеописанное соглашение невозможно.
Чтобы присвоить награду:
Это приложение для клиентской стороны, поэтому пусть остается модным.
Я ищу рабочий пример с использованием Node.js OAuth 2.0 семян выше для сервера API/Auth и фреймворка переднего конца, например Angular.js или Backbone.js, чтобы делать запросы.
Пример должен соответствовать контексту, описанному выше.