Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

На сайте Рутокен Web появилась сборка плагина, которая поддерживает Google Chrome. Ее можно скачать здесь.

К плагину необходимо дополнительное расширение, оно ставится и регистрируется вместе с плагином.

Для ручной установки расширения нужно пройти по ссылке: chrome://extensions/ и нажать на ссылку Еще расширения. В окне поиска ввести «рутокен» и нажать Enter. В списке результатов нужно выбрать пункт Адаптер Рутокен Web плагин и нажать кнопку Установить.

Отличием нового плагина является то, что функции теперь работают только в асинхронном режиме, т.к. иных способов вызова Chrome больше не поддерживает. Таким образом, потребуется модификация вызовов методов плагина. Как это сделать, можно узнать здесь.

Новая площадка для php тоже уже находится на демонстрационном портале.

С уважением, Алексей Лазарев, Компания "Актив"

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Где можно посмотреть исходники реализации авторизации/регистрации на PHP?
То есть, исходники этой площадки:
http://php.rutokenweb.ru/

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Добрый день.

Исходники площадки для PHP можно взять здесь.

С уважением, Алексей Лазарев, Компания "Актив"

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Спасибо.

Т.к. вы плагин не выпускали во время, нам пришлось оперативно переключать пользователей на альтернативный браузер. Мы выбрали в качестве него Яндекс.Браузер.
Теперь, с новым плагином, рутокен-веб в Яндекс.Браузере не работает.

Пишет такую ошибку:
https://forum.rutoken.ru/uploads/transfer/0/9000/9138/thumb/p1a5gqqh691jbb1lrjffd198s1aog1.png

А когда устанавливаешь расширение пишет такую ошибку:
https://forum.rutoken.ru/uploads/transfer/0/9000/9138/thumb/p1a5gqqh69l5qsnspsn1r441l9m2.png

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Добрый день.

Проверили сценарий с Яндекс Браузером:

- Установили браузер последней версии.
- На компьютере установлена версия плагина 1.6.1
- Установили расширение Адаптер Рутокен Web Плагин в браузере, на всякий случай, проверив, что оно включено.
- Подключили Рутокен Web
- Зашли на php.rutokenweb.ru на страницу авторизации.
- Авторизация успешно пройдена.
- Повторили на 2-х машинах: Win 8.1 x64 и Win7 x64

С уважением, Алексей Лазарев

https://forum.rutoken.ru/uploads/transfer/0/9000/9139/thumb/p1a5h2d2ut101v19i0m9mhnhugp1.png

https://forum.rutoken.ru/uploads/transfer/0/9000/9139/thumb/p1a5h2jjm51vto113vdaq1b8vcjc1.png

С уважением, Алексей Лазарев, Компания "Актив"

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

И правда:
обновил Яндекс.браузер с версии 15.9.2403.3043 до 15.10.2454.3865 и всё заработало. Спасибо.

Еще один вопрос: со старыми версиями Google Chrome плагин будет не совместим?
Тестировал на Google Chrome 43.0.2357.124 - там выскакивает всё та же ошибка  "TypeError: e.find is not a function"
Поддержка старого хрома уже не так критична, обновить можно. Просто нужно знать к чему готовиться, т.к. у некоторых пользователей обновления ПО доступны только в ручном режиме.

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

По идее, плагин поддерживает работу в старом режиме. В частности, с последним Firefox работает именно как NPAPI. Подозреваю, что дело в коде страницы:

    rutokenweb.ready.then(function () {
        if (window.chrome) {
            return rutokenweb.isExtensionInstalled();
        } else {
            return Promise.resolve(true);
        }
    }).then(function (result) {

можно попробовать сделать так:

function getChromeVersion () {     
    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);

    return raw ? parseInt(raw[2], 10) : false;
}

        if (window.chrome && getChromeVersion () >= 45) {

Тогда, по идее, код для старых Chrome должен выполняться так же, как и в Firefox и должно заработать.

С уважением, Алексей Лазарев, Компания "Актив"

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Может пригодиться. Последний Яндекс, кстати, определяется как "Chrome 45"

Здесь определяем тип и версию браузера:

var browserVersion = (function(){
    var ua= navigator.userAgent, tem,
    M= ua.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
    if(/trident/i.test(M[1])){
        tem=  /\brv[ :]+(\d+)/g.exec(ua) || [];
        return 'IE '+(tem[1] || '');
    }
    if(M[1]=== 'Chrome'){
        tem= ua.match(/\b(OPR|Edge)\/(\d+)/);
        if(tem!= null) return tem.slice(1).join(' ').replace('OPR', 'Opera');
    }
    M= M[2]? [M[1], M[2]]: [navigator.appName, navigator.appVersion, '-?'];
    if((tem= ua.match(/version\/(\d+)/i))!= null) M.splice(1, 1, tem[1]);
    return M.join(' ');
})();

С уважением, Алексей Лазарев

С уважением, Алексей Лазарев, Компания "Актив"

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Алексей Лазарев пишет:

По идее, плагин поддерживает работу в старом режиме. В частности, с последним Firefox работает именно как NPAPI. Подозреваю, что дело в коде страницы:

    rutokenweb.ready.then(function () {
        if (window.chrome) {
            return rutokenweb.isExtensionInstalled();
        } else {
            return Promise.resolve(true);
        }
    }).then(function (result) {

можно попробовать сделать так:

function getChromeVersion () {     
    var raw = navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);

    return raw ? parseInt(raw[2], 10) : false;
}

        if (window.chrome && getChromeVersion () >= 45) {

Тогда, по идее, код для старых Chrome должен выполняться так же, как и в Firefox и должно заработать.

Так не пойдёт. Т.к. в старом Хроме эта ветка не отрабатывает. Отрабатывает сразу ветка ошибки, т.к. функция undefined.
Подойдёт для старого хрома такой код (мб кому-то пригодится):


// У нас Хром и он старой версии?
if ( window.chrome && getChromeVersion() <= 45 ) {

    initOldRutokenAPIForOldChrome();

} else {

    // Для остальных браузеров

    rutokenweb.ready.then(function () {

        if (window.chrome) {

            return rutokenweb.isExtensionInstalled();
        } else {

            return Promise.resolve(true);
        }
        
    }).then(function (result) {

        // ...
        
    }).then(function (result) {

        // ...

    }).then(function (pluginPromised) {

        // ...
    
    }).then(function (wrappedPlugin) {

        //Можно начинать работать через старый интерфейс плагина
    }).then(undefined, function (reason) {


        // В старых Chrome
        // отрабатывает эта ветка,
        // то есть, функция = undefined

        console.log(reason);


        inf.innerHTML = reason;
    });
    
}

    // Функция со старыми вызовами плагина
    // для Chrome младше 45-го
function initOldRutokenAPIForOldChrome() {

        // ...
}

Re: Новая версия плагина Рутокен Web c поддержкой Google Chrome 45 и выше

Добрый день.

Firefox последней версии 43.0.4 и Рутокен Плагин 1.6.1 отработали корректно. Регистрация и авторизация на php.rutoken.ru проходят успешно.

Попробуйте на всякий случай обновить кеш площадки (Ctrl+R).

C уважением, Алексей Лазарев

С уважением, Алексей Лазарев, Компания "Актив"