Bạn có thể tích hợp Xác thực Firebase với một hệ thống xác thực tuỳ chỉnh bằng cách sửa đổi máy chủ xác thực để tạo mã thông báo đã ký tuỳ chỉnh khi người dùng đăng nhập thành công. Ứng dụng của bạn sẽ nhận được mã thông báo này và dùng mã này để xác thực với Firebase.
Trước khi bắt đầu
- Nếu bạn chưa làm, hãy làm theo các bước trong hướng dẫn Bắt đầu.
- Cài đặt và định cấu hình SDK của Firebase dành cho quản trị viên. Hãy nhớ khởi chạy SDK bằng thông tin đăng nhập chính xác cho dự án Firebase của bạn.
Xác thực bằng Firebase
Khi người dùng đăng nhập vào ứng dụng của bạn, hãy gửi thông tin đăng nhập của họ (ví dụ: tên người dùng và mật khẩu) đến máy chủ xác thực. Máy chủ của bạn sẽ kiểm tra thông tin đăng nhập và nếu thông tin đó hợp lệ, máy chủ sẽ tạo mã thông báo Firebase tuỳ chỉnh rồi gửi mã thông báo đó trở lại ứng dụng của bạn.
Sau khi nhận được mã thông báo tuỳ chỉnh từ máy chủ xác thực, hãy chuyển mã thông báo đó đến
signInWithCustomToken()để đăng nhập người dùng:try { final userCredential = await FirebaseAuth.instance.signInWithCustomToken(token); print("Sign-in successful."); } on FirebaseAuthException catch (e) { switch (e.code) { case "invalid-custom-token": print("The supplied token is not a Firebase custom auth token."); break; case "custom-token-mismatch": print("The supplied token is for a different Firebase project."); break; default: print("Unknown error."); } }
Các bước tiếp theo
Sau khi người dùng tạo tài khoản mới, tài khoản này sẽ được lưu trữ trong dự án Firebase của bạn và có thể dùng để xác định người dùng trên mọi ứng dụng trong dự án, bất kể phương thức đăng nhập mà người dùng đã sử dụng.
Trong ứng dụng, bạn có thể lấy thông tin cơ bản về hồ sơ của người dùng từ đối tượng User. Xem bài viết Quản lý người dùng.
Trong Quy tắc bảo mật của Cơ sở dữ liệu theo thời gian thực của Firebase và Cloud Storage, bạn có thể lấy Mã nhận dạng người dùng duy nhất của người dùng đã đăng nhập từ biến auth và dùng mã này để kiểm soát dữ liệu mà người dùng có thể truy cập.
Bạn có thể cho phép người dùng đăng nhập vào ứng dụng của bạn bằng nhiều nhà cung cấp dịch vụ xác thực bằng cách liên kết thông tin đăng nhập của nhà cung cấp dịch vụ xác thực) với tài khoản người dùng hiện có.
Để đăng xuất người dùng, hãy gọi signOut():
await FirebaseAuth.instance.signOut();