...
- Устанавливаем Рутокен Плагин
- Меняем загрузчик плагина на нужный нам.
Заменяем на страницах или в вашей системе сборки скрипт rutokenweb.js на rutoken.js.
https://www.npmjs.com/package/rutoken
Оба скрипта используют Promise. Если у вас уже был установлен и работал (в ie) rutokenweb.js, то зависимость уже есть, но проверить стоит. Если нет, установите скрипт для работы с промисами, например этот https://github.com/jakearchibald/es6-promise - Используем модуль проверки совместимости плагина и браузера
https://www.npmjs.com/package/rutoken-browser-check. Опционально, позволяет удобно локализовать проблемы при инициализации. У скрипта есть зависимость- https://www.npmjs.com/package/bowser - Меняем логику инициализации работы с плагином. Вынес в отдельный файл boot.js, чтобы не копипастить. Подключим его на всех страницах, где нужно, уберем лишние переменные, удалим функцию token_refresh из подписки на onload страницы.
В общем случае, плагин получается в финальном resolve цепочки промисов, где мы передаем его конструктору нашей обертки вместе с методом получения пин-кода. Этот метод нужен, чтобы эмулировать отображение окна со списком логинов и обработать выбор конкретного id. Возвращает промис с id устройства и pin-кодом, введенным пользователем.
Все ошибки инициализации прилетают в reject промиса. Ошибки от плагина прилетают другие, поэтому места, где они обрабатывались, так же нужно поправить. - Используем обертку над плагином rtwToCrypto.js.
Код обертки: https://github.com/blade-runner/rutokenweb-to-plugin
Мы подменяем методы рутокенвэб на нужные нам, таким образом сигнатуры сохраняются и ваш код работает, как и работал, но с новым плагином и всеми устройствами Рутокен.
...