Unity游戏服务:如何彻底删除玩家账户
解决思路
- 删除账户本身必须在已登录状态下执行,因为认证服务需要验证当前用户的权限,所以你没法在未登录时删除账户,问题核心是阻止删除后的自动匿名登录。
- 先查
AuthenticationService的方法重载,看看DeleteAccountAsync有没有类似skipAutoSignIn这类参数,能直接禁用删除后的自动登录逻辑。 - 如果没有相关参数,试试在删除后立即手动调用登出方法覆盖默认行为:
await AuthenticationService.Instance.DeleteAccountAsync(); // 调用登出,清空会话,阻止自动匿名登录 await AuthenticationService.Instance.SignOutAsync(); - 检查服务的配置项,有没有比如
AutoEnableAnonymousLoginAfterDelete这类开关,直接关闭默认的自动匿名登录机制。 - 要是登出方法也会触发匿名登录,就手动清理本地的认证数据:比如删除本地存储的用户令牌、重置认证状态对象,彻底切断会话关联。
- 最后可以排查认证状态变更的事件(比如
OnAuthenticationStateChanged),在删除账户后拦截匿名登录的触发逻辑,不让服务自动创建匿名会话。
内容的提问来源于stack exchange,提问作者PeterK
相关产品推荐
相关产品推荐

