Android 当移动用户向我的应用服务器端API发出请求时,我如何验证他们是否登录了FB帐户?

Android 当移动用户向我的应用服务器端API发出请求时,我如何验证他们是否登录了FB帐户?,android,facebook,Android,Facebook,我的应用程序使用从移动应用程序到服务器后端的api调用。我已经实现了facebook登录到该应用程序,并且可以登录到该应用程序,但我想知道我的服务器端如何验证用户是否已登录到它声称的帐户 我可以简单地使用facebook登录作为注册工具,并在第一次登录时为我的应用程序创建密码,但我更希望所有身份验证都是通过facebook登录本身完成的。一旦用户通过facebook或任何Oauth进行验证, 您拥有由主机(即Facebook)提供的accessToken(包含您可以访问的详细信息)和userId

我的应用程序使用从移动应用程序到服务器后端的api调用。我已经实现了facebook登录到该应用程序,并且可以登录到该应用程序,但我想知道我的服务器端如何验证用户是否已登录到它声称的帐户


我可以简单地使用facebook登录作为注册工具,并在第一次登录时为我的应用程序创建密码,但我更希望所有身份验证都是通过facebook登录本身完成的。

一旦用户通过facebook或任何Oauth进行验证, 您拥有由主机(即Facebook)提供的accessToken(包含您可以访问的详细信息)和userId(确定用户),您应该将其存储在服务器上。所以,在启动时,您可以检查accesstoken是否为null,如果不为null,请转到应用程序的下一页

用于配置文件和accessToken

String profile = com.facebook.Profile.getCurrentProfile().getId()
AccessToken accessToken = AccessToken.getCurrentAccessToken();

没有用户标识不会更改,但是accesstoken as取决于您当时有权访问的内容,如果您需要更多信息,它可能会更改。

使用accesstoken和userID@brykneval访问令牌是静态的还是动态的?它们何时以及如何变化,服务器需要做什么才能知道当前的是什么?我假设访问令牌何时以及如果发生变化,我会使用新的和旧的令牌向服务器发出请求,以更新值?@SamC不,对于简单的身份验证,您不应该这样做,当您需要姓名、年龄等信息时,需要它。来自完全独立于系统授权的facebook,但如果访问令牌发生变化,我的服务器仍将使用旧令牌,并拒绝使用新令牌发出的任何请求?@SamC通常你不会每次都从facebook获取信息,但如果你想,你可以使用AccessToken.getCurrentAccessToken();这将为您提供当前的accesstoken。currentAccessToken是否会更改?如果用户从其他设备登录,是否会发出相同的令牌?