你好,我在我的android手机上使用facebook sdk for android,并使用单一登录。它在我登录Facebook应用程序时正常工作,我的应用程序也登录了。 对于注销,我遇到了困惑。Android:facebook sdk注销问题?
我实现的方式是从应用程序的用户首选项中恢复访问令牌和过期日期,并检查会话的有效性。如果过期,应用程序会调用facebook.authorized函数,一旦授权访问令牌和过期日期将再次更新。
处理注销时,我发现有些事情有点混乱。
1)当我从Facebook应用程序注销时,我的应用程序仍然可以通过并请求用户详细信息。尽管我的应用程序上保存的访问令牌与facebook应用程序没有任何关系,但我认为在请求数据时至少会给我一个错误。但它没有给我错误。
它假设是这样的。从Facebook应用程序注销不会影响我存储在我的应用程序中的访问令牌。
2)当我从我的应用程序注销而不是Facebook应用程序时,Facebook应用程序不会自动注销。
因此,如果用户授予[我]应用程序的访问权限,他将永远通过身份验证,如果他登录到[官方] Facebook应用程序?即使我尝试在[my]应用程序中调用facebook.logout(上下文)?对不起,但我有点困惑。 – harsimranb 2012-01-09 19:34:40
是的 - 只要您的应用程序有权访问Facebook帐户,使用Facebook API,并且官方Facebook应用程序仍然登录,那么下次您启动应用程序时,它将使用Facebook应用程序获取新的应用程序访问令牌,并将默认验证。这就是单点登录应该如何工作。 – RivieraKid 2012-01-10 00:40:09
因此,是facebook.isSessionValid()检查用户是否实际登录的正确方法?因为即使用户登录,facebook.isSessionValid()也会返回true。 – harsimranb 2012-01-10 01:56:05