Авторизация по номеру телефона

События в JS

На клиентской стороне для выполнения тех или иных операций связанных с определенными событиями авторизации и регистрации, добавлен ряд событий, на которые можно подписаться.

На текущий момент в каждом комопненте свои события, нет како-то единого варианта пока.

Call и Login

В комопненте в основном вызывается везде одно события после любого Ajax запроса и получения ответа. Вместе с событием приходят данные о парамтрах инициализации, переданых данных и полученных.

<script type="text/javascript">
/*
// так вызывается событие
$(document).trigger('bxmaker.authuserphone.ajax', {
    'params': {},  // парамтеры  инифиализации комопнента
    'request': {}, // даныне отправленные в зарпосе
    'result': {}, //  полученые ответ от сервера
});
*/


// добавление обработчик события, чтобы отследить произошедшую авторизацию /
// регистрацию и отправить событие достижения цели в яндекс метрику
//  заменить XXXX на номер счетчика

$(document).on("bxmaker.authuserphone.ajax", function(event, data){

    var counterId = 'XXX';

    if(data.result && data.result.response && data.request.method === "auth") {

        if(data.result.response.type == 'AUTH') {
            console.log('AUTH');
            ym(counterId, "reachGoal", "authSuccess");
        }
        else {
            console.log('REGISTER');
            ym(counterId, "reachGoal", "registerSuccess");
        }
    }

    if(data.result && data.result.response && data.request.method === "register") {
        console.log('REGISTER');
        ym(counterId, "reachGoal", "registerSuccess");
    }
})
</script>

Simple

В комопненте в основном вызывается везде одно события после любого Ajax запроса и получения ответа. Вместе с событием приходят переданые данные и полученный ответ

<script type="text/javascript">
/*
// так вызывается событие
BX.Vue.event.$emit('BXmakerAuthuserphoneSimpleAjaxResponse', {
    request: {}, // данные в запросе
    result: {}, // полученный результат
});
*/


// добавление обработчик события, чтобы отследить произошедшую авторизацию /
// регистрацию и отправить событие достижения цели в яндекс метрику
//  заменить XXXX на номер счетчика


BX.Vue.event.$on('BXmakerAuthuserphoneSimpleAjaxResponse',(data) => {

    var counterId = 'XXX';
    var rand = data.request.rand;

    //получить доступ к объекту класса, через который можно управлять комопнентом
    // переменная определяется в шаблоне компонента
    var obj = window['BXmakerAuthuseremailSimple' +  rand];

    // доступ к корневому vue
    var instance = obj.instance;

    // обновить капчу омжно так
    // instance.refreshCaptcha();


    if(data.result.response && data.request.method === 'checkConfirmation')
    {
        // если есть response, значит все хорошо и удалось
        // проверить подтвреждение и авторизоваться, зарегистрироваться

        if(data.result.response.type  == 'AUTH')
        {
            console.log('AUTH');
            ym(counterId, "reachGoal", "authSuccess");
        }
        else if(data.result.response.type == 'REG')
        {
            console.log('REGISTER');
            ym(counterId, "reachGoal", "registerSuccess");
        }


    }
});

</script>

Enter

В комопненте в основном вызывается везде одно события после любого Ajax запроса и получения ответа. Вместе с событием приходят переданые данные и полученный ответ

<script type="text/javascript">
/*
// так вызывается событие
BX.Vue.event.$emit('BXmakerAuthuserphoneEnterAjaxResponse', {
    request: {}, // данные в запросе
    result: {}, // полученный результат
});
*/


// добавление обработчик события, чтобы отследить произошедшую авторизацию /
// регистрацию и отправить событие достижения цели в яндекс метрику
//  заменить XXXX на номер счетчика


BX.Vue.event.$on('BXmakerAuthuserphoneEnterAjaxResponse',(data) => {

    var counterId = 'XXX';
    var rand = data.request.rand;

    //получить доступ к объекту класса, через который можно управлять комопнентом
    // переменная определяется в шаблоне компонента
    var obj = window['BXmakerAuthuserphoneEnter' +  rand];

    // доступ к корневому vue
    var instance = obj.instance;

    // обновить капчу омжно так
    // instance.refreshCaptcha();


    if(data.result.response && data.request.method === 'authByPassword')
    {
        // если есть response, значит все хорошо и удалось
        // проверить подтвреждение и авторизоваться

            console.log('AUTH');
            ym(counterId, "reachGoal", "authSuccess");
    }

     if(data.result.response && data.request.method === 'register')
    {
        // если есть response, значит все хорошо и удалось
        // проверить подтвреждение и зарегистрироваться

            console.log('REGISTER');
            ym(counterId, "reachGoal", "registerSuccess");
    }


    if(data.result.response && data.request.method === 'authByPhone')
    {
        // если есть response, значит все хорошо и удалось
        // проверить подтверждение и авторизоваться, зарегистрироваться
        if(data.result.response.type  == 'AUTH')
        {
            console.log('AUTH');
            ym(counterId, "reachGoal", "authSuccess");
        }
        else if(data.result.response.type == 'REG')
        {
            console.log('REGISTER');
            ym(counterId, "reachGoal", "registerSuccess");
        }
    }


});
</script>

Edit

В комопненте в основном вызывается везде одно события после любого Ajax запроса и получения ответа. Вместе с событием приходят переданые данные и полученный ответ

<script type="text/javascript">
/*
// так вызывается событие
BX.Vue.event.$emit('BXmakerAuthuserphoneEditAjaxResponse', {
    request: {}, // данные в запросе
    result: {}, // полученный результат
});
*/


// добавление обработчик события, чтобы отследить произошедшую авторизацию /
// регистрацию и отправить событие достижения цели в яндекс метрику
//  заменить XXXX на номер счетчика


BX.Vue.event.$on('BXmakerAuthuserphoneEditAjaxResponse',(data) => {

    var counterId = 'XXX';
    var rand = data.request.rand;

    //получить доступ к объекту класса, через который можно управлять комопнентом
    // переменная определяется в шаблоне комопнента
    var obj = window['BXmakerAuthuserphoneEdit' +  rand];

    // доступ к корневому vue
    var instance = obj.instance;

    // скрыть подтверждение можно так -
    // instance.hideConfirmation();
    // или показать
    // instance.showConfirmation();


    if(data.result.response && data.request.method === 'checkConfirmation')
    {
        // если есть response, значит все хорошо и в нем сообщение об успешности выполнения операции
        console.log('PHONE_IS_CHANGED');

        ym(counterId, "reachGoal", "PHONE_IS_CHANGED");

    }
});


</script>