Laravel Fortify-це пакет автентифікації Backend для Laravel, який підтримує двофакторну автентифікацію (2FA) за допомогою одноразових паролів на основі часу (TOTP). Він гнучкий і агностик для користувачів клієнтських додатків TOTP, тобто це не пов'язане з вами спеціально до Google Authenticator і може працювати з будь-яким додатком на основі TOTP, включаючи Authy.
Що робить Laravel Fortify для 2FA
Laravel Fortify надає логіку бекенда для створення секретних ключів 2FA, надійно зберігати їх, генерувати коди відновлення та підтвердити токени TOTP під час входу. Він використовує двофакторний секретний ключ користувача для перевірки одноразового пароля, створеного будь-яким додатком Authenticator, який підтримує стандартний алгоритм TOTP (RFC 6238). Сама укріплення не передбачає і не обмежує, який мобільний або настільний додаток користувач повинен використовувати.
Використання Authy замість Google Authenticator
Authy та Google Authenticator-це обидва програми Authenticator на основі TOTP. Обидва генерують 6-значні коди кожні 30 секунд на основі секретного ключа, поділеного під час налаштування (як правило, шляхом сканування QR-коду). Laravel Fortify безперешкодно працює з будь -яким клієнтським додатком, який підтримує цей стандарт. Тому ви можете абсолютно використовувати Authy замість Google Authenticator з Laravel Fortify.
Ключові моменти про автентифікатор Authy та Google у цьому контексті:
- Сумісність: Authy використовує той самий стандарт TOTP, що і Authenticator Google, тому будь -яка установка 2FA в Laravel Fortify буде працювати з будь -яким додатком без будь -яких змін у вашому Laravel Backend.
-Досвід користувача: Authy пропонує деякі переваги перед Authenticator Google, таких як синхронізація жетонів на пристроях (підтримка мульти пристрою), зашифровані хмарні резервні копії та настільні програми (історично, в даний час мобільні орієнтовані), що може створити кращий досвід користувачів.
- Безпека: Authy має параметри захисту PIN-коду та біометричної безпеки в додатку та зашифровані резервні копії, тоді як Google Authenticator не має зашифрованих хмарних резервних копій та синхронізації мульти пристрою. Ці функції можуть зробити Authy більш зручною та стійкою до втрати пристроїв з точки зору користувача.
- Налаштування в Laravel Fortify: Єдина зміна вашої реалізації Laravel Fortify - це надання QR -коду або секретного ключа користувачеві для сканування в Authy замість Google Authenticator. Оскільки обидва додатки читають один і той же формат, QR -код Fortify генерує твори з поля з будь -яким додатком.
міркувань щодо впровадження
1. Frontend QR -дисплей: Увімкнення 2FA, укріплення зазвичай генерує QR -код на основі секретного ключа. Цей QR -код можна сканувати програмами Authy або Google Authenticator. Ваш Frontend просто повинен зробити цей QR -код, і користувач може вибрати свій бажаний додаток. Ніяких змін коду бекенду не потрібно.
2. Крок підтвердження: Одне питання, яке іноді стикається з Laravel Fortify, полягає в тому, що включення 2FA без підтвердження введеного коду може заблокувати користувачів, якщо вони не завершать налаштування належним чином. Впровадження кроку підтвердження, коли користувач вводить код, створений Authy (або Google Authenticator) після сканування QR -коду, є найкращою практикою. Це стосується незалежно від використовуваного додатка аутентифікації.
3. Коди відновлення: Fortify забезпечує коди відновлення для обходу 2FA, якщо користувач втрачає доступ до свого додатка Authenticator. Ці коди працюють незалежно від вибору програми (Authy або Google Authenticator).
Підсумок відмінностей від точки зору користувача
- Переваги авторів: **
- Підтримка мульти пристрою та автоматична синхронізація жетонів 2FA.
- зашифровані хмарні резервні копії, щоб уникнути втрати жетонів на втрату пристрою.
- Необов’язковий PIN -код та біометрична безпека для програми.
- Підтримка додатків для настільних та браузерів (хоча деякі настільні програми були припинені станом на початку 2024 року).
- Аутентифікація на основі натискання (хоча і не стандартна TOTP, більш актуальна для інших реалізацій).
- Переваги Authenticator Google: **
- більш широко відомий та підтримується багатьма послугами.
- Простіший додаток, менш складна інфраструктура підтримки (без облікових записів, резервних копій).
- цілком офлайн після початкової установки (без хмарних резервних копій).
З точки зору інтеграції Laravel, ці відмінності не мають наслідків, оскільки коди TOTP з будь -якого додатка підтверджуються однаково за допомогою зміцнення.
Додаткові примітки щодо використання Fortify
Laravel Fortify не забезпечує види фронтенду або інтерфейс; Він надає послуги Backend для аутентифікації. Багато розробників використовують зміцнення з Laravel Jetstream або іншими наборами інтерфейсу. Незалежно від інтерфейсу інтерфейсу, ключ полягає в тому, що Fortify генерує секрецію 2FA та підтверджує коди, залишаючи вибір користувача Authenticator.
Якщо налаштування необхідне для покращення UX або обробки відновлення облікового запису (додавання прапора "deta_factor_confirmed", налаштування переглядів тощо), воно може бути реалізоване у фортифіковному шарі, але не залежить від вибору між Authy та Google Authenticator.
Висновок
Так, ви можете використовувати Authy замість Google Authenticator у Laravel Fortify, не маючи змін, необхідних для вашої реалізації Backend 2FA. Обидва програми використовують однаковий стандарт TOTP, повністю підтримується Fortify. Вибір Authy може запропонувати покращені функції використання та резервне копіювання для ваших користувачів, особливо в сценаріях втрати пристроїв або багатозабезпечених доступу, але з точки зору розробника Laravel інтеграція залишається однаковою. Користувачі просто сканують QR -код, наданий Fortify за допомогою бажаного програми для налаштування 2FA.
Ця гнучкість здійснюється за допомогою дизайну, що дозволяє Laravel Fortify працювати з будь -якими додатками, що генерує стандартні коди TOTP, включаючи, але не обмежуючись ними, Google Authenticator, Authy, Microsoft Authenticator та інші.