Firebase Authentication

I. Tổng quan
Firebase Authentication hoạt động theo mô hình client-server, nơi người dùng truy cập và tương tác với ứng dụng của bạn là phía client, và dịch vụ Firebase Authentication được triển khai trên server Firebase. Dưới đây là cách Firebase Authentication hoạt động chi tiết:
Đăng Ký và Đăng Nhập:
- Khi người dùng muốn sử dụng ứng dụng của bạn, họ có thể đăng ký (nếu chưa có tài khoản) hoặc đăng nhập (nếu đã có tài khoản).
- Cho phép người dùng sử dụng các phương thức đăng nhập khác nhau như email/mật khẩu, số điện thoại, hoặc cả đăng nhập bằng tài khoản Google, Facebook, Twitter, v.v.
SDK Integration:
- Ứng dụng của bạn sử dụng Firebase Authentication SDK để tích hợp dịch vụ xác thực vào mã nguồn.
- Firebase cung cấp SDK cho nhiều nền tảng như Android, iOS, và web.
Token-Based Authentication:
- Khi người dùng đăng nhập thành công, Firebase Authentication tạo một JSON Web Token (JWT) chứa thông tin về người dùng.
- JWT này được gửi và lưu trữ an toàn trên thiết bị người dùng và được sử dụng để xác thực truy cập khi giao tiếp với các dịch vụ và tài nguyên của Firebase.
Real-Time Authentication State:
- Firebase cung cấp một cơ chế để theo dõi trạng thái xác thực người dùng trong thời gian thực.
- Khi trạng thái xác thực thay đổi (đăng nhập hoặc đăng xuất), sự kiện này được phát ra và ứng dụng có thể phản ứng tức thì.
Firebase Authentication cung cấp một giải pháp toàn diện và dễ tích hợp cho việc quản lý xác thực người dùng. Nó không chỉ giúp bảo mật ứng dụng của bạn mà còn tăng cường trải nghiệm người dùng bằng cách cung cấp các phương tiện đăng nhập thuận lợi và an toàn
II. Tích hợp với Flutter
Mình sẽ demo đơn giản luồng Authentication với email & password.
Vào Firebase Authentication -> Sign-in method -> Email/Password -> Enable
Thêm thư viện:
- flutter pub add firebase_auth
Đầu tiên, chúng ta cần thêm được user, sử dụng:
Sau khi thêm user ở Console -> Authentication -> Users chúng ta sẽ thấy user đã được thêm thành công
User đã được tạo, giờ nếu đăng nhập cần xác thực, chúng ta sẽ sử dụng
Chạy debug và kiểm tra kết quả nhận được: