Table of Contents

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,云服务 apiKeyapiSecret 创建了 APIKeyAccessData

然后使用了创建的 APIKeyAccessData 创建 MegaTrackerConfigs。 这代表将使用 API Key 和 API Secret 鉴权

使用 API Token 鉴权

若能够使用服务器定时(每几分钟或几个小时)更新和下发 APIToken,使用这种方式避免了直接使用 APISecret 对定位请求进行签名,安全性更高。APIToken 的更新方式请参考 Token的创建和使用方法

可以根据 Token 的有效期,在前端设置定时器进行更新。

首先使用设置中的 Mega 定位库 AppID 和定位服务地址创建 TokenAccessData

然后使用创建的 TokenAccessData 创建 MegaTrackerConfigs

然后使用 MegaTrackerConfigs 和配置中的 licenseKey 创建 SessionConfigs

最终用 xr-frame 场景中挂载的 EasyARMegaComponentcreateSession(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 鉴权。