客户端 指的是任何为产品访问Epic在线服务(EOS)功能的程序,包括终端用户在其系统上运行的游戏的本地版本、产品所有者运行的专用服务器,或任何其他需要能够查看后台服务的程序。
EOS使用OAuth客户端凭证授予这些服务的访问权限。创建后,每个EOS客户端都会自动分配到客户端ID和客户端密钥(密码),你必须使用这些信息验证身份。这些信息在EOS_Platform_ClientCredentials结构中作为EOS_Platform_Create的参数进行传递,因此SDK可以将程序识别为有效的EOS客户端,授权它,并赋予它权限访问由其客户端策略确定的特性。
在引入客户端策略之前创建的客户端会自动与匹配客户端初始分配角色的客户端策略相关联,并标记为旧版。
我们鼓励你回顾你对客户端策略的使用。如果你的游戏没有运行专用服务器,但允许客户端托管点对点匹配,可以考虑将你的策略更新至新的点对点策略或适当的自定义策略。
客户端策略是防止你的游戏遭受未授权活动影响的关键因素。要查看和管理你的客户端和客户端策略,可导航至产品的 产品设置(Product Settings) 并选择 客户端(Clients) 选项卡。
客户端
不可信客户端 通常是公开发布的应用程序,例如产品客户端本身。要由社区或充当产品服务器的点对点产品所运行的已发布服务器不应被视为可信客户端。开发人员不能假定所有玩家在连接到使用该策略的服务时运行的都是你发布的未修改的原版代码。
可信客户端 受开发人员控制,例如数据中心的专用服务器,并且不公开发布。可信客户端可以拥有更多权限,因为可以假定它未被修改,并且仅在你的环境下运行。
添加新的客户端
可以点击 新客户端(New Client) 添加新的EOS客户端。这将打开新客户端模式,可在其中填写客户端详情。
客户端必须与客户端策略关联。你可以将单个客户端策略与多个客户端关联。如果未将客户端与客户端策略关联,则不可保存该客户端。
策略
创建新客户端之前,必须拥有具备该客户端必要权限的客户端策略。必要时,可以在创建新客户端时创建客户端策略,或者向下滚动到 客户端策略(Client Policies) 部分,点击 添加新客户端策略(Add New Client Policy)。多个客户端可以与单个客户端策略关联。
例如,如果客户端使用专用服务器,你可以选择 TrustedServer 类型。这就确定了一组适合于可信后端的权限。
你也可以配置 自定义客户端策略(Custom Client Policies) 以选择允许的单独操作。
默认策略类型
游戏客户端(GameClient)
- 不受信客户端应用的策略
- 需要验证用户
带有未解锁成就的游戏客户端(GameClient with UnlockAchievements)
- 类似于游戏客户端,但允许客户端解锁玩家成就
- 要求经过身份验证的用户
P2P(Peer2Peer)
- 针对想要托管多人游戏的不受信客户端应用的策略。
- 要求经过身份验证的用户
受信服务器(TrustedServer)
- 专用服务器或受信应用的政策
- 包含创建配对会话和代表玩家读取统计数据的能力。
- 不要求经过身份验证的用户
自定义(Custom)
- 创建一个新的策略,允许为每个服务定制一组操作。
客户端策略许可评估
所有请求都会被默认拒绝。只有在客户端策略中添加的操作才被允许。
排除错误
在排除错误时,请首先检查日志,仔细了解问题的细节情况。
对于1.10及以上的SDK 版本,任何与该服务有关的错误都会返回 EOS_Unexpected_Error
。
对于1.10及以上的SDK 版本,下表列出了潜在错误及其对策。
错误 | 描述 | 解决方案 |
---|---|---|
EOS_NotConfigured | 本次调用没有为设置客户端权限。 | 进入开发者门户,并为该客户端配置策略。 |
EOS_AcessDenied | 本次调用的客户端权限已经设置好了,但调用却没有通过检查(比如你使用了一个正确设置的客户端,但却试图访问另一个用户的私有玩家数据存储)。 | 检查日志了解问题的更多细节,然后联系支持人员。 |
EOS_InvalidAuth | 客户端被配置为需要登录用户,但客户端凭证不允许。 | 检查日志以了解有关你的问题的更多细节,并联系支持。 |
EOS_AccessDenied | 客户端策略禁止该客户端调用。很可能开发者门户被配置为不允许你的客户端访问调用。 | 进入开发者门户,修改客户端配置。或者制定一个新的策略,使其允许给定的权限。 |