Есть приложение A. Есть
внешний микросервис B, который необходимо интегрировать в A.
Приложение A запускается в разных окружениях (на разных стендах) и для получения микросервиса, в зависимости от окружения, нужно обращаться по разным адресам для корректной аутентификации.
Возникают непреодолимые трудности в виде неудачных авторизаций.
Поэтому прошу помощи с вопросами:
1. Как правильно настроить webpack?
Изначально было решено использовать относительные пути, а запросы проксировать на нужные адреса в зависимости от стенда, чтобы не возникало проблем с аутентификацией (ну и в вебпаке указан тогда один remote).
new ModuleFederationPlugin({
name: 'common',
remotes: {
filename: 'remoteEntry.js',
appB: 'appB@appB/dist/remoteEntry.js'
},
shared: {}
})
Возможно стоило для разных стендов задавать свой url используя process.env?
Но в любом случае после получения микросервиса, он будет отправлять запрос за данными и проксирование по идее все равно понадобится.
2. Возможно стоило использовать iframe для этих целей, это бы избавило от проблем с авторизацией?
На данный момент все застряло на том, что при первом запросе к remoteEntry.js возвращается ошибка авторизации, так как аутентификационная кука после авторизации устанавливается только относительно нашего поддомена, а не общая.
Когда пробовали вариант с редиректом, то застряли на CORS ошибках.
3. Микросервису B необходимо разработать sdk, а данные получать по отдельным API-запросам? (То есть не использовать module federation).
Или возможно микросервису B нужно сделать какие-то дополнительные настройки, которые не делают по дефолту для микросервисов.
Все упирается в сложность с авторизацией, так как у приложения A и приложения B они разные.
Проблем с интеграцией внутренних микросервисов (то есть лежащих в нашем окружении с общей аутентификацией) не возникало.