MegaTracker 雲服務鑑權
這篇文章介紹瞭如何指定 MegaTracker 使用雲服務時的鑑權方式。
開始之前
使用 API Key 和 API Secret 鑑權
這種方式適用於傳統的密鑰對驗證。你需要使用 APIKeyAccessData 來構造 MegaTrackerConfigs 中的 access 對象。
const apiKeyAccess = new mega.APIKeyAccessData(
settings.MegaTrackerAppID, // Mega 定位服務 AppID
settings.MegaTrackerServerAddress, // Mega 定位服務地址
settings.EasyARAPIKey, // APIKey 字符串
settings.EasyARAPISecret // APISecret 字符串
);
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: apiKeyAccess
};
const sessionConfigs: easyar.SessionConfigs = {
megaTrackerConfigs: megaTrackerConfigs,
licenseKey: settings.EasyARLicenseKey
};
session = megaComponent.createSession(sessionConfigs);
這個例子中先使用配置中的雲定位庫
appId,雲服務serverAddress,雲服務apiKey和apiSecret創建了 APIKeyAccessData。然後使用了創建的 APIKeyAccessData 創建 MegaTrackerConfigs。 這代表將使用 API Key 和 API Secret 鑑權
使用 API Token 鑑權
若能夠使用服務器定時(每幾分鐘或幾個小時)更新和下發 APIToken,使用這種方式避免了直接使用 APISecret 對定位請求進行簽名,安全性更高。APIToken 的更新方式請參考 Token的創建和使用方法。
可以根據 Token 的有效期,在前端設置定時器進行更新。
首先使用設置中的 Mega 定位庫 AppID 和定位服務地址創建 TokenAccessData。
然後使用創建的 TokenAccessData 創建 MegaTrackerConfigs。
然後使用 MegaTrackerConfigs 和配置中的 licenseKey 創建 SessionConfigs。
最終用 xr-frame 場景中掛載的 EasyARMegaComponent 的 createSession(sessionConfigs) 方法創建 session。
當 Token 過期時,必須調用 updateToken(apiToken) 進行更新,否則 Mega 服務將不可用,定位結果中的狀態始終爲 ApiTokenExpired。
const tokenAccess = new mega.TokenAccessData(
settings.MegaTrackerAppID, // Mega 定位服務 AppID
settings.MegaTrackerServerAddress, // Mega 定位服務地址
"your_api_token" // APIToken 字符串
);
const megaTrackerConfigs: easyar.MegaTrackerConfigs = {
access: tokenAccess
};
const sessionConfigs: easyar.SessionConfigs = {
megaTrackerConfigs: megaTrackerConfigs,
licenseKey: settings.EasyARLicenseKey
};
session = megaComponent.createSession(sessionConfigs);
這個例子演示瞭如何使用 TokenAccessData 創建 MegaTrackerConfigs,並且用這個 MegaTrackerConfigs 創建 session 以使用
APIToken鑑權。