Epic EOS Authentication
應用程式設定
新增Epic/EOS作為身份驗證提供者很容易,可以在幾秒鐘內從Photon應用程式的儀表板完成。
轉到應用程式的「管理」頁面,向下滾動到「身份驗證」部分。
強制設定
- clientid:用於透過Epic帳戶服務對用戶進行身份驗證的客戶端ID(用於ID權杖驗證)。提示:此值(現時)可以在EOS儀表板>產品設定>客戶端(>詳細資訊>客戶端ID)中找到
- catalogitemids(可選):必須擁有的目錄項,條目用分號分隔。注意:儀表板中的鍵不能移除,值不能為空。如果不需要所有權檢查,請使用「無」或「0」作為值。
客戶端側
客戶端必須發送:
- token:ID權杖(請參閱下方的「為用戶擷取ID權杖」)
- ownershipToken(可選):如果在儀表板中設置了catalogItemIds,則客戶端必須發送ownershipToken,NS驗證物件是否被擁有
擷取一個ID權杖
客戶端必須使用Epic帳戶服務API以獲取ID權杖,如Epic的「驗證介面 - 為用戶擷取一個ID權杖」檔案所述
Epic檔案摘錄:「遊戲客戶端可以透過在用戶登錄後調用EOS_Auth_CopyIdToken
SDK API,傳入包含用戶的EOS_EpicAccountId
的EOS_Auth_CopyIdTokenOptions
結構,為本機用戶獲取ID權杖。
輸出的EOS_Auth_IdToken
結構包含用戶的EOS_EpicAccountId
和表示ID權杖數據的JWT。請注意,當您完成ID權杖結構時,必須調用EOS_Auth_IdToken_Release
來釋放它。
一旦擷取到,遊戲客戶端就可以向另一方提供ID權杖。ID權杖始終可供登入的本機用戶隨時使用。
範例程式碼
這可用於擷取ID權杖:
C#
// Call this method after login.
private bool GetLocalIdToken(out IdToken? a_IdToken)
{
var options = new CopyIdTokenOptions()
{
AccountId = LocalUserId
};
// NOTE: Make sure to use the EOSAuthInterface to get the IdToken instead of the EOSConnectInterface.
var result = EOSManager.Instance.GetEOSAuthInterface().CopyIdToken(ref options, out a_IdToken);
if (result != Result.Success)
{
Debug.LogError("Failed to copy the IdToken.");
return false;
}
return true;
}
AuthValues
可以這樣設定:
C#
var authValues = new AuthenticationValues();
authValues.AuthType = CustomAuthenticationType.Epic;
var idToken = /* token retrieved by GetLocalIdToken */;
authValues.AddAuthParameter("token", idToken.Value.JsonWebToken.ToString());
Client.AuthValues = authValues;
請求所有權驗證權杖
Epic的檔案描述了如何獲取可選的所有權驗證權杖。
Back to top