文档

​
​

Development

User Acquisition

Monetization

工业

Cloud Code

Open Unity Dashboard

Cloud Code

LiveOps
​
​
Cloud Code
  • Overview
  • Get started
  • Server authority
  • Cloud Code C# modules
  • Cloud Code JavaScript scripts
    • Overview
    • Get started
    • Concepts
      • Authentication
      • Script structure
      • Script types
      • Token support
      • Error handling
      • JavaScript files
    • Tutorials
    • Reference
  • Logging
  • Use-case samples
  • Privacy and consent
  1. Cloud Code

服务令牌和访问令牌支持

Use Access Tokens and Service Tokens to authenticate requests in Cloud Code scripts.
阅读时间8 分钟
最后更新于 8 个月前

在脚本中,
context
对象提供一个
accessToken
和一个
serviceToken
:

令牌类型

来源

数据访问

用途

accessToken
由 Authentication 服务生成。仅限经过身份验证的玩家。
AccessToken
是用于对 Cloud Code 调用进行身份验证的 JWT。您可以将此令牌传递给其他 UGS 服务来访问经过身份验证的玩家的数据。
serviceToken
由 Cloud Code 生成。跨玩家数据访问。
ServiceToken
是用于调用其他 UGS 服务并处理跨玩家数据的令牌。
在调用其他 UGS 服务时,您可以使用这些令牌以玩家身份或 Cloud Code 身份进行身份验证。
请参阅身份验证页面以了解更多信息。

概述

请评估您是要以玩家身份还是以受信任的客户端身份进行身份验证。
脚本
context
对象为您提供一个
accessToken
和一个
serviceToken
。
如果脚本的目的是仅访问经过身份验证的玩家的数据,则应使用
accessToken
以玩家身份进行身份验证来调用脚本。这将确保玩家只能访问和处理自己的数据。
如果脚本的目的是访问跨玩家数据,则应使用
serviceToken
以 Cloud Code 身份进行身份验证。这将确保脚本可以访问和处理跨玩家数据。但是,这为恶意玩家调用脚本并访问非预期跨玩家数据创造了机会。为防止出现这种情况,应确保模块受到访问控制规则的保护。
要详细了解如何处理跨玩家数据,请参阅跨玩家数据文档。

访问令牌支持

访问令牌是 Authentication 服务生成的 JWT。您可以使用访问令牌对玩家进行身份验证。
当经过身份验证的玩家调用 Cloud Code 模块时,他们会将自己的访问令牌作为
context
对象的
AccessToken
属性传递给该模块。
您可以将访问令牌用于 Cloud Code JavaScript SDK。要将访问令牌用于其他 UGS API,您需要在 Authentication 标头中将令牌作为持有者令牌传递。
配置的访问控制规则会影响
accessToken
。

支持的服务

要检查哪些服务支持访问令牌,请参阅下表:

提供者

支持的服务

Cloud Code JavaScript SDK所有已接入 Authentication 服务的 Cloud Code JavaScript SDK。
UGS Client API所有已接入 Authentication 服务的 UGS 服务。
UGS Admin API不支持。改用服务帐户身份验证。
注意
注意: 大多数 UGS 服务都接入了 Authentication 服务,并支持访问令牌。

将令牌用于 Cloud Code JavaScript SDK

要将
accessToken
用于 Cloud Code JavaScript SDK,您需要从
context
对象传递令牌。
注意
注意: 默认情况下,Cloud Code JavaScript SDK 使用
context
对象中的
serviceToken
。
accessToken
需要显式传递给 SDK 构造函数才能使用。
以下示例将增加调用该脚本的玩家的货币余额。该脚本接受货币 ID 作为参数。

JavaScript

const { CurrenciesApi } = require("@unity-services/economy-2.4");module.exports = async ({ params, context, logger }) => { const { projectId, playerId, accessToken } = context; const { currencyId } = params; // Use the accessToken from the context object to authenticate the call as the player const currencies = new CurrenciesApi({accessToken}); try { const result = await currencies.incrementPlayerCurrencyBalance({ projectId, playerId, currencyId, currencyModifyBalanceRequest: { amount: 10 } }); return result.data; } catch (err) { logger.error("Failed to update currency balance", {"error.message": err.message}, {"currencyId" : currencyId}); throw err; }}

将令牌用于 UGS Client API

要将
accessToken
用于 UGS Client API,请在 Authentication 标头中将令牌作为持有者令牌传递。
注意
注意: 如果要调用的服务提供了 Cloud Code JavaScript SDK,则可以使用该 SDK,而不是直接调用服务 API。如需查看可用 SDK 的列表,请参阅 Cloud Code Services SDK 页面。
以下示例将获取调用该脚本的玩家的好友列表:

JavaScript

const axios = require("axios-0.21");module.exports = async ({ params, context, logger }) => { const config = { headers: { 'Content-Type': 'application/json', // Pass the accessToken from the context object as a bearer token Authorization: `Bearer ${context.accessToken}` } }; try { const friendsGetUrl = `https://social.services.api.unity.com/v1/relationships?type=FRIEND_REQUEST` var res = await axios.get(friendsGetUrl, config); return res.data; } catch (err) { logger.error("Failed to retrieve Friends", {"error.message": err.message}); throw err; }};

服务令牌支持

服务令牌是 Cloud Code 生成的 JWT。您可以使用服务令牌以 Cloud Code 身份对服务进行身份验证。这是经过令牌交换过程的服务帐户令牌。
您可以将服务令牌用于 Cloud Code JavaScript SDK。要将其用于其他 API,您需要在 Authentication 标头中将其作为持有者令牌传递。
如需了解更多信息,请参阅身份验证文档。

支持的服务

如需查看支持服务令牌的服务列表,请参阅下表:

提供者

支持的服务

Cloud Code JavaScript SDK
  • Cloud Save
  • Economy
  • Lobby
  • Leaderboards
  • Player Names
  • Matchmaker
  • 多人游戏
UGS Client API
  • Cloud Save
  • Economy
  • Leaderboards
  • Player Names
  • Matchmaker
UGS Admin API不支持。改用服务帐户身份验证。
如需了解更多信息,请参阅 Cloud Code Services SDK 文档。

将令牌用于 Cloud Code JavaScript SDK

要将
serviceToken
用于 Cloud Code JavaScript SDK,请从
context
对象传递令牌。
以下示例接受一个玩家 ID 和一个货币 ID 作为参数并增加该玩家的货币余额:

JavaScript

const { CurrenciesApi } = require("@unity-services/economy-2.4");module.exports = async ({ params, context, logger }) => { const { projectId } = context; const { playerId, currencyId } = params; // By default, the Cloud Code JavaScript SDKs use the serviceToken from the context object const currencies = new CurrenciesApi(context); try { const result = await currencies.incrementPlayerCurrencyBalance({ projectId, playerId, currencyId, currencyModifyBalanceRequest: { amount: 10 } }); return result.data; } catch (err) { logger.error("Failed to update currency balance", {"error.message": err.message}, {"currencyId" : currencyId}); throw err; }}

将令牌用于 UGS Client API

要将
serviceToken
用于 UGS Client API,请在 Authentication 标头中将令牌作为持有者令牌传递。
注意
注意: 如果调用的服务提供了 Cloud Code C# SDK,则可以使用该 SDK,而不是直接调用服务 API。如需查看可用 SDK 的列表,请参阅可用库页面。
例如,如果您调用 Cloud Save API,则可以使用
serviceToken
进行身份验证并处理跨玩家数据。以下示例接受一个玩家 ID 作为函数参数,记录一个新值,并返回为该玩家存储的所有数据:

JavaScript

const axios = require("axios-0.21");module.exports = async ({ params, context, logger }) => { const config = { headers: { 'Content-Type': 'application/json', // Authenticate as Cloud Code using the serviceToken from the context object Authorization: `Bearer ${context.serviceToken}` } }; let result; try { const cloudSaveUrl = `https://cloud-save.services.api.unity.com/v1/data/projects/${context.projectId}/players/${params.playerId}/items` const payload = { key : "test", value: "test" }; await axios.post(cloudSaveUrl, payload, config); result = await axios.get(cloudSaveUrl, config); return result.data; } catch (err) { logger.error("Failed to call out to Cloud Save", {"error.message": err.message}); throw err; }};

Copyright © 2026 Unity Technologies
法律信息隐私政策CookiesDocumentation Terms of Use请勿出售或分享我的个人信息您的隐私选择(Cookie 设置)

“Unity”、Unity 徽标及其他 Unity 商标是 Unity Technologies 或其附属公司在美国和其他地方的商标或注册商标(此处查看更多信息)。其他名称或品牌是其各自所有者的商标。

为方便起见,一些页面是机器翻译的,可能包含不准确的内容。如有信息不一致的情况,以英文版本为准。

  • 在本页上
    • 概述

    • 访问令牌支持

      • 支持的服务

      • 将令牌用于 Cloud Code JavaScript SDK

        • JavaScript

      • 将令牌用于 UGS Client API

        • JavaScript

    • 服务令牌支持

      • 支持的服务

      • 将令牌用于 Cloud Code JavaScript SDK

        • JavaScript

      • 将令牌用于 UGS Client API

        • JavaScript


报告此页面的问题