...
- Установим Рутокен Плагин. Актуальная версия плагина доступна по ссылке:
https://www.rutoken.ru/support/download/rutoken-plugin/ - Изменим загрузчик плагина. Для этого заменим на страницах или в системе сборки скрипт rutokenweb.js на rutoken.js:
https://www.npmjs.com/package/rutoken
Оба эти скрипта используют Promise. - Если у вас установлен и работает rutokenweb.js, то зависимости должны быть.
- Если 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 цепочки цепочке промисов, где в которой мы передаем его конструктору нашей обертки вместе с методом получения PIN-кода. Этот метод нужен, чтобы эмулировать отображение отображение окна со списком логинов и обработать выбор корректного id. Возвращается промис с id устройства и PIN-кодом, введенным пользователем. Все ошибки инициализации прилетают в reject промиса. Ошибки от плагина прилетают другие, поэтому то место, где они обрабатывались необходимо изменить. - Используйте обертку над плагином rtwToCrypto.js. Код обертки:
https://github.com/blade-runner/rutokenweb-to-plugin
Подменяем методы Рутокен Web на необходимые нам. Таким образом сигнатуры сохраняются и ваш код работает, но с новым плагином и всеми устройствами Рутокен.
Список методов, переопределенных оберткой:
...