This document is about: FUSION 1
SWITCH TO

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_EpicAccountIdEOS_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