Laravel Faintify là gói xác thực phụ trợ cho Laravel hỗ trợ xác thực hai yếu tố (2FA) thông qua mật khẩu một lần dựa trên thời gian (TOTP). Nó linh hoạt và bất khả tri đối với người dùng ứng dụng máy khách TOTP sử dụng, có nghĩa là nó không ràng buộc bạn cụ thể với Google Authenticator và có thể làm việc với bất kỳ ứng dụng xác thực dựa trên TOTP nào, bao gồm cả Authy.
Những gì Laravel Forpify làm cho 2FA
Laravel Faintify cung cấp logic phụ trợ để tạo các khóa bí mật 2FA, lưu trữ chúng một cách an toàn, tạo mã khôi phục và xác thực mã thông báo TOTP trong quá trình đăng nhập. Nó sử dụng khóa bí mật hai yếu tố của người dùng để xác minh mật khẩu một lần được tạo bởi bất kỳ ứng dụng xác thực nào hỗ trợ thuật toán TOTP tiêu chuẩn (RFC 6238). Bản thân tự mình không bắt buộc hoặc hạn chế ứng dụng di động hoặc máy tính để bàn nào mà người dùng phải sử dụng.
Sử dụng Authy thay vì Google Authenticator
Authy và Google Authenticator đều là các ứng dụng xác thực dựa trên TOTP. Cả hai đều tạo mã 6 chữ số cứ sau 30 giây dựa trên khóa bí mật được chia sẻ trong quá trình thiết lập (thường bằng cách quét mã QR). Laravel Fanterify hoạt động liền mạch với bất kỳ ứng dụng khách hàng nào hỗ trợ tiêu chuẩn này. Do đó, bạn hoàn toàn có thể sử dụng Authy thay vì Google Authenticator với Laravel Faintify.
Điểm chính về Authy và Google Authenticator trong bối cảnh này:
- Khả năng tương thích: Authy sử dụng cùng tiêu chuẩn TOTP như Google Authenticator, do đó, bất kỳ thiết lập 2FA nào trong Laravel Fortify sẽ hoạt động với một trong hai ứng dụng mà không có bất kỳ thay đổi nào đối với phụ trợ Laravel của bạn.
-Trải nghiệm người dùng: Authy cung cấp một số lợi thế so với Google Authenticator, chẳng hạn như đồng bộ hóa mã thông báo trên các thiết bị (hỗ trợ đa thiết bị), sao lưu đám mây được mã hóa và ứng dụng máy tính để bàn (trên lịch sử, hiện tại trung tâm di động), có thể tạo ra trải nghiệm người dùng tốt hơn.
- Bảo mật: Authy có các tùy chọn để bảo vệ pin và bảo mật sinh trắc học trên ứng dụng và các bản sao lưu được mã hóa, trong khi Google Authenticator thiếu sao lưu đám mây được mã hóa và đồng bộ hóa đa thiết bị. Các tính năng này có thể làm cho Authy thân thiện hơn và kiên cường hơn so với mất thiết bị theo quan điểm của người dùng.
- Thiết lập trong Laravel Faintify: Sự thay đổi duy nhất trong triển khai Laravel Fortify của bạn sẽ là cung cấp mã QR hoặc khóa bí mật cho người dùng để quét trong Authy thay vì Google Authenticator. Vì cả hai ứng dụng đều đọc cùng một định dạng, mã QR củng cố tạo ra hoạt động ngoài hộp với một trong hai ứng dụng.
Cân nhắc thực hiện
1. Hiển thị mã Frontend QR: Khi bật 2FA, thường xuyên tạo ra mã QR dựa trên khóa bí mật. Mã QR này có thể được quét bởi các ứng dụng Authy hoặc Google Authenticator. Frontend của bạn chỉ cần hiển thị mã QR này và người dùng có thể chọn ứng dụng ưa thích của họ. Không có thay đổi mã phụ trợ cần thiết.
2. Bước xác nhận: Một vấn đề đôi khi gặp phải với Laravel Fortify là kích hoạt 2FA mà không xác nhận mã đã nhập có thể khóa người dùng nếu họ không hoàn thành thiết lập đúng. Thực hiện bước xác nhận trong đó người dùng nhập mã được tạo bởi Authy (hoặc Google Authenticator) sau khi quét mã QR là một thông lệ tốt nhất. Điều này áp dụng bất kể ứng dụng xác thực được sử dụng.
3. Mã phục hồi: Fortify cung cấp mã phục hồi cho 2FA Bypass nếu người dùng mất quyền truy cập vào ứng dụng Authenticator của họ. Các mã này hoạt động độc lập với việc lựa chọn ứng dụng (Authy hoặc Google Authenticator).
Tóm tắt sự khác biệt từ quan điểm của người dùng
- Ưu điểm của Authy: **
- Hỗ trợ đa thiết bị và đồng bộ hóa tự động của các mã thông báo 2FA.
- Sao lưu đám mây được mã hóa để tránh mất mã thông báo khi mất thiết bị.
- PIN tùy chọn và bảo mật sinh trắc học cho ứng dụng.
- Hỗ trợ ứng dụng máy tính để bàn và trình duyệt (mặc dù một số ứng dụng máy tính để bàn đã bị ngưng vào đầu năm 2024).
- Xác thực dựa trên đẩy (mặc dù không phải tiêu chuẩn TOTP, phù hợp hơn cho các triển khai khác).
- Ưu điểm của Google Authenticator: **
- Được biết đến rộng rãi và được hỗ trợ bởi nhiều dịch vụ.
- Ứng dụng đơn giản hơn, cơ sở hạ tầng sao lưu ít phức tạp hơn (không có tài khoản, không có bản sao lưu).
- Hoàn toàn ngoại tuyến sau khi thiết lập ban đầu (không có bản sao lưu đám mây).
Từ quan điểm tích hợp Laravel củng cố, những khác biệt này không có kết quả vì các mã TOTP từ một trong hai ứng dụng được xác thực theo cách tương tự bởi Forgify.
Ghi chú bổ sung về sử dụng củng cố
Laravel Fortify không cung cấp chế độ xem phía trước hoặc UI; Nó cung cấp dịch vụ phụ trợ để xác thực. Nhiều nhà phát triển sử dụng Fainfify với Laravel JetStream hoặc các bộ dụng cụ UI khác. Bất kể UI là gì, điều quan trọng là Forgify tạo ra các mã Bí mật 2FA và xác thực, để lại sự lựa chọn ứng dụng Authenticator cho người dùng.
Nếu cần tùy chỉnh để cải thiện UX hoặc xử lý việc khôi phục tài khoản tốt hơn (thêm cờ "Two_factor_confirmed", tùy chỉnh chế độ xem, v.v.), nó có thể được triển khai trong lớp củng cố nhưng không phụ thuộc vào sự lựa chọn giữa Authy và Google Authenticator.
Phần kết luận
Có, bạn có thể sử dụng Authy thay vì Google Authenticator trong Laravel củng cố không cần thay đổi để triển khai 2FA phụ trợ của bạn. Cả hai ứng dụng đều sử dụng cùng một tiêu chuẩn TOTP được hỗ trợ đầy đủ bởi Forgify. Việc chọn Authy có thể cung cấp các tính năng sử dụng và sao lưu nâng cao cho người dùng của bạn, đặc biệt là trong các kịch bản mất thiết bị hoặc truy cập nhiều thiết bị, nhưng từ quan điểm của nhà phát triển Laravel, tích hợp vẫn giữ nguyên. Người dùng chỉ cần quét mã QR do Agify cung cấp với ứng dụng ưa thích của họ để thiết lập 2FA.
Tính linh hoạt này là theo thiết kế, cho phép Laravel củng cố hoạt động với bất kỳ mã TOTP tiêu chuẩn nào tạo ra ứng dụng, bao gồm nhưng không giới hạn ở Google Authenticator, Authy, Microsoft Authenticator và các mã khác.