Перевірика телефону через SMS: - при вході перевіряється чи телефон підтвердженний (UserV.phoneConfirmationCode !== null) \app\models\LoginForm::login - якщо не підтверджено: - - якщо вже є не заекспірений код - повертаємо помилку з ним - - якщо коду нема, або заекспірений - генеруємо новий і повертаємо помилку з ним - - сторінка бачить помилку з інформацією і показує поле для введення коду - - PHP перевіряє код - - якщо код правильний - користувач залогінюється - повертається дані - - якщо неправильнй - повертається помилка і сторінка знову показує поле - можливість перегенерувати код підтвердження і послати його через SMS у в’юсі userV є поля: phoneConfirmationCode - код підтвердження телефону phoneConfirmationExpiry - дата закінчення коду підтвердження телефону emailConfirmationCode - код підтвердження емейлу emailConfirmationExpiry - дата закінчення коду підтвердження емейлу Логіка роботи: Коли ці коди NULL - це одначає, що телефон чи емейл не мінялись. Якщо в кодах записано пуста строчка '' - це означає, що мінявся, відповідно, емейл чи телефон. Якщо є код, значить, його встановлювали і по ньому можна перевірити. При виклику user_Update вона встановлює ці поля в пусту строчку, якщо до того коди були NULL і з даним викликом мінявся, відповідно, телефон чи емейл. Виклик user_SetConfirmationCode - можна встановити коди та їх дату закінчення. Виклик user_CheckConfirmationCode - перевіряє, чи коди валідні - чи вони є і чи не закінчились. Вертає int з бітами, де 1 означає, що код ОК, а 0 - що коду або нема, або він не валідний: біт 0 (перевіряти через "& 1") відповідає за телефон біт 1 (перевіряти через "& 2") відповідає за емейл create function user_SetConfirmationCode( user_id_ int unsigned, phone_confirmation_code_ varchar(255), phone_confirmation_expiry_ datetime, reset_phone_code_ enum('n', 'y'), email_confirmation_code_ varchar(255), email_confirmation_expiry_ datetime, reset_email_code_ enum('n', 'y') ) returns int unsigned create function user_CheckConfirmationCode( user_id_ int unsigned, phone_confirmation_code_ varchar(255), email_confirmation_code_ varchar(255) ) returns int unsigned