Мы интегрируем Okta Sign-in Widget в наше веб-приложение на основе React. .
var oktaSignIn = new OktaSignIn({baseUrl: baseUrl});
oktaSignIn.renderEl(...)
У нас отлично работает при рендеринге виджета в первый раз, но после того, как пользователь входит в систему и снова выходит из системы, веб-приложение визуализирует компонент входа во второй раз и пытается снова выполнить renderEl
для рендеринга виджета. Это вызывает следующее исключение:
Backbone.history has already been started
Я создал этот jsfiddle, чтобы продемонстрировать проблему. Он просто дважды создает экземпляр виджета входа (второй раз после ожидания). Вы можете видеть, что второй вызов вызывает исключение.
https://jsfiddle.net/nudwcroo/6/
На данный момент мой обходной путь заключается в перезагрузке всего веб-приложения при переходе к компоненту входа в систему, но это нежелательно для одностраничного приложения.
Это известная проблема? Есть ли способ дважды инициализировать виджет входа в систему за один сеанс javascript?