Google cam kết thúc đẩy bình đẳng chủng tộc đối với cộng đồng đen. Xem cách.
Trang này được dịch bởi Cloud Translation API.
Switch to English

Authenticate với căn cứ hỏa lực Sử dụng một hệ thống xác thực Custom và C ++

Bạn có thể tích hợp căn cứ hỏa lực Authentication với một hệ thống xác thực tùy chỉnh bằng cách thay đổi máy chủ xác thực để sản tùy chỉnh ký thẻ khi người dùng đăng nhập thành công. Ứng dụng của bạn nhận được này token và sử dụng nó để xác thực với căn cứ hỏa lực.

Trước khi bắt đầu

  1. Thêm căn cứ hỏa lực để dự án của bạn C ++ .
  2. Trong dự án cấp của bạn build.gradle tập tin, hãy chắc chắn để bao gồm kho Maven của Google trong cả hai bạn buildscriptallprojects phần.
  3. Nhận chìa khóa của máy chủ dự án của bạn:
    1. Tới các tài khoản dịch vụ trang trong cài đặt của dự án của bạn.
    2. Nhấn Generate New Private Key ở dưới cùng của phần căn cứ hỏa lực SDK quản trị của trang tài khoản dịch vụ.
    3. công cộng / cặp khóa bí mật tài khoản dịch vụ mới sẽ được tự động lưu vào máy tính của bạn. Sao chép tập tin này vào máy chủ xác thực của bạn.

Authenticate với căn cứ hỏa lực

Các Auth lớp là cửa ngõ cho tất cả các cuộc gọi API.
  1. Thêm các tập tin tiêu đề Auth và App:
    #include "firebase/app.h"
    #include "firebase/auth.h"
    
  2. Trong mã khởi tạo của bạn, tạo ra một firebase::App lớp.
    #if defined(__ANDROID__)
      firebase::App* app =
          firebase::App::Create(firebase::AppOptions(), my_jni_env, my_activity);
    #else
      firebase::App* app = firebase::App::Create(firebase::AppOptions());
    #endif  // defined(__ANDROID__)
    
  3. Có được các firebase::auth::Auth lớp cho bạn firebase::App . Có một ánh xạ một-một giữa AppAuth .
    firebase::auth::Auth* auth = firebase::auth::Auth::GetAuth(app);
    
Gọi Auth::SignInWithCustomToken với thẻ từ máy chủ xác thực của bạn.
  1. Khi người dùng đăng nhập vào ứng dụng của bạn, gửi đăng nhập của họ thông tin (ví dụ, tên truy cập và mật khẩu của họ) đến máy chủ xác thực của bạn. Kiểm tra máy chủ của bạn các thông tin và trả về một tùy chỉnh thẻ nếu họ là hợp lệ.
  2. Sau khi bạn nhận được tùy chỉnh token từ máy chủ xác thực, vượt qua nó để Auth::SignInWithCustomToken để đăng nhập người dùng:
    firebase::Future<firebase::auth::User*> result =
        auth->SignInWithCustomToken(custom_token);
    
  3. Nếu chương trình của bạn có chu kỳ cập nhật mà chạy thường xuyên (nói ở tốc độ 30 hoặc 60 lần mỗi giây), bạn có thể kiểm tra kết quả một lần mỗi bản cập nhật với Auth::SignInWithCustomTokenLastResult :
    firebase::Future<firebase::auth::User*> result =
        auth->SignInWithCustomTokenLastResult();
    if (result.status() == firebase::kFutureStatusComplete) {
      if (result.error() == firebase::auth::kAuthErrorNone) {
        firebase::auth::User* user = *result.result();
        printf("Sign in succeeded for `%s`\n", user->display_name().c_str());
      } else {
        printf("Sign in failed with error '%s'\n", result.error_message());
      }
    }
    
    Hoặc, nếu chương trình của bạn là sự kiện điều khiển, bạn có thể thích đăng ký một callback về tương lai .

Bước tiếp theo

Sau một người dùng đăng nhập lần đầu tiên, một tài khoản người dùng mới được tạo ra và liên quan đến các chứng chỉ-có nghĩa là, tên người dùng và mật khẩu, số điện thoại, hoặc auth cung cấp thông tin người dùng đăng nhập bằng. Tài khoản mới này được lưu giữ như một phần của dự án căn cứ hỏa lực của bạn, và có thể được sử dụng để xác định một người dùng trên mọi ứng dụng trong dự án của bạn, bất kể như thế nào người dùng đăng nhập.

  • Trong các ứng dụng của bạn, bạn có thể nhận được thông tin hồ sơ cơ bản của người dùng từ các firebase::auth::User đối tượng:

    firebase::auth::User* user = auth->current_user();
    if (user != nullptr) {
      std::string name = user->display_name();
      std::string email = user->email();
      std::string photo_url = user->photo_url();
      // The user's ID, unique to the Firebase project.
      // Do NOT use this value to authenticate with your backend server,
      // if you have one. Use firebase::auth::User::Token() instead.
      std::string uid = user->uid();
    }
    
  • Trong Cơ sở dữ liệu căn cứ hỏa lực Realtime của bạn và lưu trữ đám mây Security Rules , bạn có thể nhận được đã đăng nhập của người sử dụng ID người dùng duy nhất từ auth biến, và sử dụng nó để kiểm soát dữ liệu 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 sử dụng nhiều nhà cung cấp chứng thực bởi liên kết auth thông tin cung cấp cho một tài khoản người dùng hiện có.

Đăng xuất khỏi một người sử dụng, hãy gọi SignOut() :

auth->SignOut();