3

我正在开发适用于 iOS 和 Android 的 Unity 项目。我们使用 Parse 作为后端服务,并希望允许用户通过 Facebook 登录到他们的 Parse 帐户。

我正在使用:Parse Unity SDK (v1.2.12)、Facebook Unity SDK (v4.3.6) 和 Unity (v4.3.2f1)

我有一个 Parse 后端正在运行,并且我已经按照他们的文档中的描述设置了我的 facebook 应用程序。所以我创建了一个 Parse 用户 (ParseUserA),并创建了一个 facebook 测试用户 (FacebookUserA)。通过我的 Unity 项目的 iOS 构建,我能够将 FacebookUserA 链接到 ParseUserA,并且从此时开始,FacebookUserA 的 accessToken 可以按预期登录该用户。这行得通,但有一个问题。

现在 FacebookUserA 的妹妹 (FacebookUserB) 想试试这个游戏。但是,她当然希望拥有自己的后端用户。这应该不是问题,因为可以通过 facebook 创建新的 Parse 用户。但问题是我的 iOS 设备已经有 FacebookUserA 的 accessToken,只要它认为有效,它就会坚持使用这个 accessToken。

我在我的 iOS 设备上访问了 facebook.com(我的设备上没有任何 Facebook 应用程序),然后我将测试用户 FacebookUserA 注销。然后我用我的另一个测试用户 FacebookUserB 登录。然后我启动了我的统一应用程序,它仍然使用 FacebookUserA 的 accessToken 获取 ParseUserA 信息,尽管 FacebookUserB 现在是在设备上登录到 Facebook 的人。

我知道我仍然拥有 FacebookUserA 的 accessToken,但我如何才能检查该用户实际上是否仍然在我的设备上登录到 Facebook?如果访问令牌的所有者不再登录到 facebook.com,我不想使用 facebook 自动登录。当然,如果另一个用户在设备上登录到 facebook,当尝试使用 FacebookUserA 的访问令牌时,该 accessToken 应该变得无效、被破坏或类似的东西。

更新:我可能会补充说,我从一个似乎找到解决方案的人那里找到了这篇文章。我想我明天可能会在那个帖子里问,如果这里没有人有好的建议。http://parse.com/questions/how-to-invalidate-a-facebook-access-token此外,一两次谷歌搜索表明这是很多人遇到的问题。我在这里发布的链接最接近我发现的有用的东西。任何理解它的帮助将不胜感激。

另外,我发现这在我看来是同样的问题。我不知道说要调查的人是谁,但那是 v4.3.4 并且我正在使用 v4.3.6 .. 所以我想这有可能只是一个没有尚未解决。不过,如果有人有信息或想法,我很乐意听到。 Unity Facebook SDK 4.3.4 - 未为以前的用户清除 AccessToken 和登录状态

4

2 回答 2

0

您可以从 Unity SDK 调用 FB.Logout()。这将删除设备上缓存的访问令牌。

于 2014-01-21T21:23:58.403 回答
0

The only way I found to switch users was the following. This method will only be useful for those who only need to switch users for debugging purposes.

This was the steps I followed and actually worked for me.

  1. Uninstalled the FB app on the Android device
  2. Change the permissions on the login function (Unity c# code). This step is to invalidate the current access token. I dont know if there is a better way to do this.
  3. Uninstall the game from the device
  4. Try to login again on the device, and the user and password input prompts again.
于 2014-09-24T15:59:22.823 回答