1. 程式人生 > >使用者特權管理SmartFoxServer 2X

使用者特權管理SmartFoxServer 2X

線上應用程式的一個常見要求是為不同型別的使用者提供一組自定義許可權。 通常,線上遊戲可以處理來賓使用者,註冊使用者和高階使用者。 為管理員和/或網站管理員提供個人資料也很常見。

SmartFoxServer 2X提供每個區域內的許可權管理器,可以自定義以限制與伺服器的互動。 每個許可權配置檔案可以為特定類別的每個使用者設定拒絕的API呼叫列表。 例如,我們可以禁止為訪客使用者建立房間和房間變數,並且只允許註冊使用者使用。 除了這兩個特權類別之外,所有人都可以拒絕主持人和管理員資訊等。

許可權管理器中的每個配置檔案都用唯一的數字標識。 這些ID可以自由分配,但前4個被保留,並且對系統有特殊的含義:
Id == 0:訪客使用者
Id == 1:註冊使用者
Id == 2:主持人使用者
Id == 3:管理員使用者

沒有為每個配置檔案提供預設設定。 開發人員可以根據自己的喜好自由定製這些許可權。 我們應該記住,這四個ID總是在系統中被識別,如上面的列表所示。 例如,如果你在你的程式碼中使用它:

var kermit:User = sfs.userManager.getUserByName("KermitTheFrog")

if (kermit.isModerator())
{
    // Allow some special action here...在這裡允許一些特別的動作
}

在內部,API實際上會檢查profileId == 2。

您還可以自由新增任何數量的附加配置檔案,並完全忽略我們提到的預設配置檔案。

注意
配置檔案ID作為一個短整數(16位)傳送,這意味著每個區域的理論限制為2 ^ 16個許可配置檔案。
»如何配置許可權配置檔案

配置許可權配置檔案是一個非常簡單的操作。 您只需要執行AdminTool,啟動“區域配置器”模組,然後選擇要在其中編輯許可權的區域。 在“特權管理員”選項卡下,您將找到四個標準配置檔案:
這裡寫圖片描述
您可以編輯任何這些或新增新的:
這裡寫圖片描述
雙列表將使您能夠從拒絕的列表中新增和刪除任何請求。在對話方塊的下方,您將能夠分配另外兩個特殊標誌:

ExtensionCalls:啟用對Zone中任何Extension的訪問;關閉時,具有所選配置檔案的使用者將無法使用擴充套件。
SuperUser:開啟時,使所選配置檔案的使用者可以使用主持人/管理員功能,例如踢,禁止和傳送mod / admin訊息。

»如何使用許可權配置檔案

為特定使用者分配正確的許可權配置檔案需要自定義登入邏輯。通常,開發人員將管理資料庫或類似資料來源中的使用者資料。在登入時,您的擴充套件程式將能夠檢查使用者憑據,並最終在客戶端最終登入系統後設置適當的許可權ID。

我們建議的流程如下(更多資訊檢視自定義登入如何):

在你的init()擴充套件方法中為USER_LOGIN伺服器事件註冊。
當USER_LOGIN被觸發時,您可以根據資料來源檢查憑據,並允許或拒絕訪問。如果您允許訪問,您還可以在會話屬性中儲存許可權配置檔案。按照慣例,有一個名為$ permission的保留屬性,用於指定使用者將被分配的許可權ID。例如:
session.setProperty("$permission", DefaultPermissionProfile.MODERATOR);

session.setProperty(“$ permission”,DefaultPermissionProfile.MODERATOR);

現在,使用者許可權已正確配置。每次從客戶端傳送請求時,許可權管理器將根據使用者配置檔案進行驗證,並確定是否應該執行或拒絕。如果請求被拒絕,將會記錄錯誤。