Сделать пользовательский вызов API с аутентификацией
Я пытаюсь разработать приложение, которое должно в конечном итоге заменить существующее (не Ember) и обеспечить дополнительную функциональность.
Для начала, для всего, что еще не реализовано в новом приложении, я хочу перенаправить пользователей к существующему, используя возможность единого входа последнего. Рабочий процесс, который я себе представлял, таков:
- Пользователь, вошедший в новое (Ember) приложение, нажимает на ссылку или кнопку там
- Новое приложение выполняет API-вызов к конечной точке, которая возвращает токен SSO
- Новая сгенерированная приложением ссылка, включая токен SSO, открывает ее (в новом или том же окне)
Я использую ember-simple-auth для аутентификации пользователя для вызовов API, которые возвращают информацию о пользователе, используя веб-токен JSON, содержащий идентификатор пользователя.
Для шага 2 выше мне нужно будет включить этот токен в вызов API, но я не знаю, как и где реализовать вызов. Нужен ли мне Ember.Route
для этого (где я мог бы бросить в AuthenticatedRouteMixin
)? Я бы не стал рассматривать маркер единого входа как часть моей модели, так что это кажется неправильным. Можно ли как-нибудь получить токен сеанса и включить его в прямой вызов ajax? Нужно ли мне?
1 ответ
ember-simple-auth предоставляет SessionService, где вы можете получить доступ к этой информации.
Я рекомендую использовать ember-ajax для выполнения фактического запроса и переопределить службу ajax для вызова служб сеанса. authorize
метод.
Затем вам нужно внедрить ваш авторизатор для авторизации этого запроса.
Подробная реализация зависит от вашего авторизатора и от того, как вы хотите включить токен в свой запрос. В качестве заголовка, параметра запроса или в теле.