Сделать пользовательский вызов API с аутентификацией

Я пытаюсь разработать приложение, которое должно в конечном итоге заменить существующее (не Ember) и обеспечить дополнительную функциональность.

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

  1. Пользователь, вошедший в новое (Ember) приложение, нажимает на ссылку или кнопку там
  2. Новое приложение выполняет API-вызов к конечной точке, которая возвращает токен SSO
  3. Новая сгенерированная приложением ссылка, включая токен SSO, открывает ее (в новом или том же окне)

Я использую ember-simple-auth для аутентификации пользователя для вызовов API, которые возвращают информацию о пользователе, используя веб-токен JSON, содержащий идентификатор пользователя.

Для шага 2 выше мне нужно будет включить этот токен в вызов API, но я не знаю, как и где реализовать вызов. Нужен ли мне Ember.Route для этого (где я мог бы бросить в AuthenticatedRouteMixin)? Я бы не стал рассматривать маркер единого входа как часть моей модели, так что это кажется неправильным. Можно ли как-нибудь получить токен сеанса и включить его в прямой вызов ajax? Нужно ли мне?

1 ответ

Решение

ember-simple-auth предоставляет SessionService, где вы можете получить доступ к этой информации.

Я рекомендую использовать ember-ajax для выполнения фактического запроса и переопределить службу ajax для вызова служб сеанса. authorize метод.

Затем вам нужно внедрить ваш авторизатор для авторизации этого запроса.

Подробная реализация зависит от вашего авторизатора и от того, как вы хотите включить токен в свой запрос. В качестве заголовка, параметра запроса или в теле.

Другие вопросы по тегам