2010-10-28 72 views
2

我试图避免当用户已经从我的WebView连接到Facebook上,下一次他做了会议,并不需要把电子邮件和密码。我从这个“facebook.com”域名获得了这个cookie:商店的Facebook从的WebView

String cookie = CookieManager.getInstance().getCookie("facebook.com"); 

并将其存储在SQLite数据库中。当用户试图连接其他时间的Facebook,我用这句话删除所有其他饼干后:

CookieManager.getInstance().setCookie("facebook.com", user_acc.getSessionCookie()); 

,但不起作用。我认为这个cookie是无效的,因为用户必须再次输入他的用户名和密码,并且在登录后,我得到了一个与我存储的不同的cookie。

我在做什么错了?是否有另一种方法来实现这一目标?

预先感谢您。

回答

0

好了,我已经找到了解决办法。如果我得到的所有cookie都不起作用,但是如果只获取m_user cookie,一切正常。

谢谢帕里的答案。

问候。

+1

您可能误解了解决方案。我偶然发现你的帖子寻找完全相同的东西,并且我已经能够在不使用任何m_user或其他专用于facebook的cookie的情况下通过将类概述中描述的4个调用放在http://developer.android中来解决此问题。 com/reference/android/webkit/CookieSyncManager.html – uTubeFan 2011-05-24 18:15:14

+0

@uTubeFan是的,你是对的。我现在已经尝试过,它采用facebook.com cookie。我不知道为什么之前不行,但现在它工作。 谢谢! – Adrian 2011-07-08 00:55:34

1

我认为你不能通过cookie做到这一点,因为这个cookie仅适用于该会话,并且一旦用户注销该cookie到期,虽然你正在将该cookie存储在你的数据库中的facebook,该cookie从未被创建过,为什么它又要求用户名密码。我认为最好的方法是单击记住密码

+0

有十几个facebook的cookie,只有一个是会话cookie。 – 2010-10-28 20:18:41

+0

那么,有没有办法避免用户在每次使用我的应用程序时都必须登录?如果我不删除cookies,他只需要第一次登录,所以我认为这些信息是作为cookie存储的,因为如果我删除它们,它就不会发生。 – Adrian 2010-10-29 09:55:09

+0

但是,如何防止用户不注销?因为只要用户单击注销会话变得无效,所以你不能通过在数据库中存储cookie来实现你想要的东西看到这篇文章的会话劫持http://atenlabs.com/blog/how-to-steal-facebook-authentication-cookies/ – 2010-10-29 10:03:18

0

我认为这将解决您的问题,这是今天公布检查这是否可以正常工作http://techcrunch.com/2010/11/03/facebook-single-sign-on/

+0

感谢您的阅读,但我已经注意到要使用它,用户必须安装官方应用程序,但是当我编程一个替代客户端时,说用户他必须安装官方Facebook客户端使用我的,你不觉得一样吗? – Adrian 2010-11-05 11:13:28