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鉴权。