升级Photon Pun至2.46后PlayFab+Photon认证报错求助
解决Photon Pun 2.46 + PlayFab认证报错问题
核心原因
Photon Pun 2.46版本对Name Server与Master Server的认证流程做了严格校验,旧版PlayFab认证脚本可能在连接Master Server时未正确携带Token,或者在错误的阶段发起认证请求,触发了新版本的校验逻辑。
具体修复步骤
- 调整认证请求时机:必须在成功连接到Name Server之后,再获取PlayFab的Photon Token,设置认证参数后再连接Master Server。旧代码可能提前在
ConnectingToMasterServer阶段发起认证,导致无Token报错。
逻辑顺序:调用PhotonNetwork.ConnectUsingSettings()→ 等待OnConnectedToNameServer回调触发 → 请求PlayFab Token → 赋值PhotonNetwork.AuthValues→ 调用PhotonNetwork.ConnectToMaster()。 - 确保Token传递正确:从PlayFab获取的Token必须赋值给
AuthenticationValues的Token字段,同时正确设置UserId。示例代码片段:// 获取到PlayFab返回的Photon Token后执行 var authValues = new AuthenticationValues(); authValues.Token = playFabPhotonToken; authValues.UserId = playFabPlayerId; PhotonNetwork.AuthValues = authValues; - 检查Photon Dashboard配置:在Photon应用后台的「Authentication」选项卡中,确认「Allow Anonymous」已关闭;同时在PlayFab后台的外接服务配置中,确保Photon App ID与PlayFab App ID绑定正确。
- 移除手动认证调用:Photon Pun 2.46会在连接Master Server时自动使用
AuthValues中的Token完成认证,无需手动调用OpAuthenticate。旧代码中的手动认证调用会触发冲突报错。
额外排查点
- 打印PlayFab请求返回的Token值,确认非空且格式为有效Base64编码字符串。
- 删除Unity项目的
Library和Temp文件夹,清理缓存后重新编译,避免旧版资源残留影响。
内容的提问来源于stack exchange,提问作者Liam Shumaker
相关产品推荐
相关产品推荐

