跳到主要内容

什么时候需要后端,以及可信边界

级别:按需学习。 这是你熟悉的工程领域,重点是游戏新增的问题与合理接入时机。

用需求决定服务端责任​

需求本地能否满足需要后端的原因
单机规则、设置、临时进度通常可以无需先建设服务
跨设备进度不充分身份、同步、冲突与恢复
可信排行榜与奖励不可信校验、反作弊、幂等与审计
远程活动与配置部分可做版本、灰度、回退与运维
汇总行为分析本地仅适合调试采集、去重、查询与隐私管理

微信登录的正确方向​

客户端 wx.login → 临时 code → 你的服务器
你的服务器 → 微信 code2Session → 身份结果
你的服务器 → 签发业务登录态 → 客户端

AppSecret 保存在服务端密钥配置中,session_key 不下发客户端。客户端资源包、构建变量和混淆代码都不适合保存 Secret。临时 code 不能作为长期业务 token。

当前官方入口是 code2Session,旧教程路径可能已经失效;登录整体见官方登录指南。

不信任客户端最终分数​

客户端可以被改写。只上传“我赢了,给我一百金币”没有可信依据。按价值与风险选择:服务端重放输入、权威模拟、挑战种子与过程校验、频率和合理性检查。没有一种简单签名能让客户端自报结果自动可信。

首作非竞争性本地成绩可以接受较低可信度,但要清楚标记边界;接排行榜或有价值奖励时重新评估。

幂等、同步与版本​

结算接口使用稳定业务键,例如玩家 ID、局 ID 与奖励类型组成的唯一约束。验证奖励条件后,在事务中记录结算和余额变化。重复请求返回已处理结果。

进度同步不能只用客户端时间做最后写入获胜。按数据类型选择单调合并、服务端版本或显式冲突处理。客户端、规则和配置版本都可能并存,接口与资源保留兼容窗口。

运维继续使用你熟悉的方法​

限流、超时、熔断、日志脱敏、备份和告警仍适用。额外关注活动突发、广告或支付回调、旧版本长尾和第三方依赖。服务失败时定义本地可继续的范围,避免非必要后端故障阻断整个游戏。

练习:选一个真实需要后端的功能,画信任边界、失败流程和幂等键。完成标准:能解释为什么它需要服务器,以及为什么更简单的本地方案不再满足需求。