我正在使用具有两种用户的flex mobile构建移动应用程序:必须注册和登录的常规用户以及可以使用他们的Facebook帐户登录的Facebook用户。然后,每个用户都可以将视频添加到他的个人列表中或从同一列表中删除一个视频。问题是如何在登录后区分常规用户和Facebook用户,这样我就可以访问数据库并加载每个用户添加的视频列表。我的数据库包含3个表:常规用户表,Facebook用户表和视频表。
答案 0 :(得分:0)
使用Fb.getLoginStatus的响应对象,您可以识别从Facebook登录的用户
确定用户是否已对您的应用进行了身份验证:
FB.getLoginStatus(function(response){ if(response.status ==='connected'){ //用户已登录并已验证您的身份 // app和response.authResponse供应 //用户的ID,有效的访问令牌,签名 //请求,以及访问令牌的时间 //并且签名请求每个都过期 var uid = response.authResponse.userID; var accessToken = response.authResponse.accessToken; } else if(response.status ==='not_authorized'){ //用户登录Facebook, //但尚未验证您的应用 } else { //用户未登录Facebook。 } });
响应对象
如果用户已对您的应用进行了身份验证,则响应对象将如下所示:
{ 状态:'已连接', authResponse:{ accessToken:'...', 过期日期在:'...', signedRequest: '...', 用户身份:'...' } }
通过测试响应对象中是否存在authResponse对象,您可以确定用户已对您的应用进行了身份验证,您可以开始进一步调用Facebook API。如果authResponse对象不存在,则用户未登录Facebook,或者未授权您的应用。
authResponse对象最有用的部分是userID(用户ID)和accessToken。访问令牌可用于代表该用户向Facebook API发出请求。 userID是应用中存在的用户的唯一标识符。