我在我的网络应用中实施了FB登录/注销。我的每个网络应用程序都有不同的用途,因此具有不同的域。但它们共享相同的用户数据库。
用户的Facebook注册来自一个网络应用程序。我将客户端JS-SDK
登录功能返回的访问令牌传递给服务器。在服务器端,我使用Facebook电子邮件和ID(使用图形API /me
检索)分别作为用户的用户名和密码。
起初,我为每个网站创建了一个独特的Facebook 应用。在这种情况下,在我的其他网络应用程序中,当使用Facebook登录时,图形API /me
会为同一用户返回不同的ID,因此用户无法登录。
事实证明,Facebook登录返回的response.authResponse.accessToken
也不同。然后,我尝试将Settings->Advanced->Valid OAuth redirect URIs
下的所有域添加到一个网站应用中,但每个域的访问令牌和ID仍然不同。
我想知道这里有什么问题。为什么Facebook为同一个用户返回不同的ID。即使Web域都在一个应用程序(相同的应用程序ID和密码)中,访问令牌也是不同的原因。感谢。
答案 0 :(得分:0)
正如@WizKid建议的here,您需要在不同的应用之间映射用户。通常,您需要创建一个业务经理并将您的应用添加到该经理。然后,您可以通过调用API /me/ids_for_business