Я решил это в прошлом месяце.то, что я сделал, было
- нажмите логин
- перенаправить на adfs
- adfs логин успешно-> перенаправить на мой бэкэнд
- backend создатьтокен sso temp с данными токена доступа, который уже существует и действителен только в течение 2 минут.
- веб-сервер перенаправления с GET с параметрами sso temp token * внешний интерфейс 1012 *
- принимает параметры токена sso tempи сделать еще один пост-запрос AJAX для бэкенда
- Api проверит токен sso temp и предоставит детали (токен доступа и токен обновления) пользователю
- прочитает данные ответа на запрос поста в 6 и обновитв ember простой сервис аутентификации с использованием интерфейса authenticate (вы можете настроить его с помощью пользовательского аутентификатора)
вот пользовательский класс аутентификатора
import Base from 'ember-simple-auth/authenticators/base';
import {isEmpty} from '@ember/utils';
export default Base.extend({
authenticate(data) {
return new Promise((resolve, reject) => {
if(data.access_token!=null){
resolve({
scope: data.scope,
access_token: data.access_token,
});
}else{
reject();
} })
},
restore(data) {
return new Promise((resolve, reject) => {
if (!isEmpty(data.access_token)) {
resolve(data);
} else {
reject();
}
});
},
});
, который я создалмаршрут для обработки во внешнем интерфейсе для получения токена, отправляемого бэкэндом.поэтому маршрут принимает sso-токен с помощью параметра get (потому что backend не может выполнить публикацию в emberapp), поэтому, когда запускается маршрут, я перехватываю параметр в маршруте и снова выполняю метод post для проверки токена.
мыс использованием сгенерированных токенов.поэтому, так как этот вопрос задают о emberjs, я проиллюстрировал ответ, чтобы поддержать вас в веб-интерфейсе.Я должен проиллюстрировать концепцию, чтобы показать, что вам нужно делать.так что это зависит от вас, чтобы выкопать и узнать больше об этом.например, как создать временный токен JWT, как его проверить, как перенаправить вас на ваш бэкэнд с заявками от adfs и т. д. Я думаю, что я даю ответ на первоначальный вопрос, который вы задали, а именно: «Как реализовать Ember Simple Authс использованием внешнего перенаправления "