This document is about: FUSION 1
SWITCH TO

Overview

當您使用任何Photon SDK啟動新專案時,您可能會注意到用戶(也稱為玩家)是匿名的。無需以用戶身份登入,且您可能會注意到每個新遊戲階段都會分配一個隨機的userId

這對於啟動專案來說是件好事,但也有嚴重的缺點:

  • 沒有防止冒充的安全措施,任何人都可以宣告任何userId
  • 任何庫存或統計資料都在客戶端提供,易於操控
  • 用戶無法識別他人或找到朋友
  • 每個人都可以無條件存取您應用程式的線上元件
  • 無法禁止惡意用戶

因此,我們強烈建議在正式發佈之前為所有應用程式新增身份驗證。

雖然Photon本身不提供使用者帳戶,但可以輕鬆整合第三方服務。設定完成後,Photon使用伺服器到伺服器REST api對用戶進行身份驗證。這些服務可以授予或拒絕存取Photon。

匿名用戶

即使您的Photon應用程式不需要伺服器端身份驗證,客戶端也必須始終發送身份驗證操作。預設身份驗證請求使用CustomAuthenticationType.None,當客戶端連接時,會在幕後發生。

除非您的客戶端程式碼設定了任何憑證(在.Net中透過AuthenticationValues),否則伺服器將分配一個新的GUID作為userId,該GUID將持續到遊戲階段結束。

預設下,允許客戶端透過發送userId來標識自己,但不會以任何方式進行檢查。

存儲和重用userId客戶端是一種非常簡單的「識別」用戶的方法,但也很容易被身份盜用。這應該被適當的伺服器端身份驗證所取代。

拒絕匿名使用者

即使在為您的應用程式設定了身份驗證提供程式後,客戶端仍然可以嘗試使用AuthenticationValues.CustomAuthenticationType = CustomAuthenticationType.None。要拒絕這些客戶端,請確保在儀表板中取消選取每個應用程式的「允許匿名用戶端連接」。

身份驗證設定

身份驗證需要伺服器端和您的客戶端之間進行一些協調。

對於每個應用程式(以及相應的AppId),首先在Photon儀表板中完成設定。使用者帳戶的幾個流行服務是預先定義的,任何其他服務都可以新增為「自訂伺服器」。此設定定義了伺服器到伺服器的身份驗證調用的憑證。

客戶端在連接時總是會發送身份驗證操作。要請求使用特定身份驗證提供程式進行身份驗證,客戶端必須在連接之前設定其AuthenticationValues。所需的值取決於提供帳戶的服務。一些服務只需要用戶名和密碼,而另一些服務則提供自己的SDK和API來登入並獲取身份驗證權杖,以在Photon上驗證用戶。

客戶端的AuthenticationValues.CustomAuthenticationType的值定義了要使用的服務,因此您可以混合使用。

預先定義提供者

Photon直接實作了幾個流行的使用者帳戶服務,以簡化其使用。對於每項服務,Photon儀表板都會要求一組值來建立系統之間的關聯。在客戶端,每個服務在CustomAuthenticationType列舉中都有一個相應的值。

這些服務在單獨的檔案頁面中有更詳細的描述。客戶端必須滿足每項服務的預期值。

自訂身份驗證

自訂身份驗證可用於整合預先定義提供者未涵蓋的任何服務。如果您有一個用戶群,並希望將其納入Photon標題,可以使用自訂身份驗證。

必須設定web服務來響應Photon的授權請求。透過響應,服務授予對Photon的存取權限,設定userId或其他值。在客戶端,使用AuthType = CustomAuthenticationType.Custom

自訂身份驗證檔案頁面提供了實作和設置所需REST api的所有詳細資訊,以使用任何後端對用戶進行身份驗證。

PlayFab整合

雖然PlayFab是「用戶後端服務」的流行選擇,但它的身份驗證是作為自訂身份驗證來實作的。

請查看PlayFab整合檔案以取得更多資訊。

控制台上的身份驗證

Photon為大多數流行的控制台平台提供身份驗證提供程式。每個都在相關的Console檔案頁面上進行了描述。

請查看控制台檔案類別以取得更多資訊。

新增Voice及Chat

Voice及Chat SDK是獨立的解決方案,有自己的身份驗證設置。

當Voice及Chat與其他SDK配對時,我們建議設置每個AppId以提供與Fusion或Quantum相同的身份驗證選項。

Unity的Voice SDK甚至提供了一個重用Fusion的AuthenticationValues的選項。

Back to top