Java Facebook登录web laravel和android移动应用程序

Java Facebook登录web laravel和android移动应用程序,java,android,facebook,api,laravel,Java,Android,Facebook,Api,Laravel,我正在尝试开发两个应用程序web和移动。Web和API是用laravel 5完成的。两者都使用电子邮件/密码授权和facebook登录。移动应用程序将使用上述API。(我知道我可以将API与AngularJS一起用于web应用程序,但目前这有点太高级了) 我设法将facebook与larvel结合起来,这样我就可以创建并使用凭据登录该应用程序,或者使用facebook登录。用户存储在用户表中,如果用户使用FB登录,则其访问令牌存储在同一个表中。Android移动应用程序通过facebook SD

我正在尝试开发两个应用程序web和移动。Web和API是用laravel 5完成的。两者都使用电子邮件/密码授权和facebook登录。移动应用程序将使用上述API。(我知道我可以将API与AngularJS一起用于web应用程序,但目前这有点太高级了)

我设法将facebook与larvel结合起来,这样我就可以创建并使用凭据登录该应用程序,或者使用facebook登录。用户存储在用户表中,如果用户使用FB登录,则其访问令牌存储在同一个表中。Android移动应用程序通过facebook SDK使用facebook登录。我正在使用相同的facebook应用程序ID,这两个应用程序具有相同的权限范围。我的问题是,两个进程生成的访问令牌是不同的,所以通过web应用程序使用facebook的用户与通过手机使用facebook的用户具有不同的令牌

所以,如果我遵循这个逻辑,识别facebook用户通过电子邮件和访问令牌访问后端数据是不可行的,因为表中的电子邮件字段是唯一的,并且通过覆盖web或移动应用程序的访问令牌是没有意义的。所以情况是,我有两个不同的用户,即使他们来自同一个facebook帐户


我怀疑我的逻辑不正确,想请您提供帮助/解释,在web和移动应用程序上同时授权同一facebook用户的正确方式是什么。

您应该使用fbid来识别用户,而不是访问令牌。这是facebook api返回的响应的一部分

对于PHP:

对于Android:

感谢您的及时回复。我不会说我在识别用户方面有问题,但是使用graph api的访问令牌会有问题。提供的令牌是可移植的,所以这就是我将其存储在数据库中的原因,以便我可以读取它们并用于从移动或web查询图形。@dascorp-Hmm。我明白你的意思,你也可以存储访问令牌,以便将来访问图形api。但是,当登录到不同的设备时,使用访问令牌作为唯一标识符不是解决方案(必须生成不同的访问令牌)。您可能会遇到上述问题陈述中解释的相同问题。