透過將 GitHub 驗證整合到您的應用程式中,您可以讓使用者使用其 GitHub 帳戶透過 Firebase 進行身份驗證。
在你開始之前
在使用Firebase 驗證之前,您需要:
註冊您的 Unity 專案並將其配置為使用 Firebase。
如果您的 Unity 專案已使用 Firebase,則它已針對 Firebase 進行註冊和設定。
如果您沒有 Unity 項目,可以下載範例應用程式。
將Firebase Unity SDK (具體來說,
FirebaseAuth.unitypackage
)加入您的 Unity 專案。
請注意,將 Firebase 新增至 Unity 專案涉及Firebase 控制台和開啟的 Unity 專案中的任務(例如,從控制台下載 Firebase 設定文件,然後將它們移至 Unity 專案中)。
存取Firebase.Auth
類
FirebaseAuth
類別是所有 API 呼叫的網關。它可以透過FirebaseAuth.DefaultInstance存取。Firebase.Auth.FirebaseAuth auth = Firebase.Auth.FirebaseAuth.DefaultInstance;
使用 Firebase 進行身份驗證
- 依照Android和iOS+的說明為登入的 GitHub 使用者取得令牌。
- 使用者成功登入後,將存取權杖交換為 Firebase 憑證,並使用 Firebase 憑證透過 Firebase 進行驗證:
Firebase.Auth.Credential credential = Firebase.Auth.GitHubAuthProvider.GetCredential(accessToken); auth.SignInAndRetrieveDataWithCredentialAsync(credential).ContinueWith(task => { if (task.IsCanceled) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync was canceled."); return; } if (task.IsFaulted) { Debug.LogError("SignInAndRetrieveDataWithCredentialAsync encountered an error: " + task.Exception); return; } Firebase.Auth.AuthResult result = task.Result; Debug.LogFormat("User signed in successfully: {0} ({1})", result.User.DisplayName, result.User.UserId); });
下一步
使用者首次登入後,系統會建立新的使用者帳戶,並將其連結到使用者登入時所使用的憑證(即使用者名稱和密碼、電話號碼或驗證提供者資訊)。此新帳戶將作為 Firebase 專案的一部分存儲,並且可用於識別專案中每個應用程式中的用戶,無論用戶如何登入。
在您的應用程式中,您可以從
Firebase.Auth.FirebaseUser
物件取得使用者的基本個人資料資訊:Firebase.Auth.FirebaseUser user = auth.CurrentUser; if (user != null) { string name = user.DisplayName; string email = user.Email; System.Uri photo_url = user.PhotoUrl; // 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 User.TokenAsync() instead. string uid = user.UserId; }
在 Firebase 即時資料庫和雲端儲存安全性規則中,您可以從
auth
變數取得登入使用者的唯一使用者 ID,並使用它來控制使用者可以存取哪些資料。
您可以透過將身分驗證提供者憑證連結到現有使用者帳戶,允許使用者使用多個驗證提供者登入您的應用程式。
若要登出用戶,請呼叫SignOut()
:
auth.SignOut();