我正在创建一个需要能够与Facebook分享故事的应用程序,使用以编程方式设置的密码和电子邮件地址(不使用 Facebook-Connect ,主要是因为我想要我的自己的设计,无论您是从应用程序登录Twitter还是Facebook)。
我已经通过Twitter和XAuth完成了这项工作,这非常有效。有什么方法可以用Facebook或者只是常规OAuth来实现同样的目标吗? (或Facebook是否支持XAuth ,这会让它变得容易多了?)
有没有其他方法可以达到我的目的?
答案 0 :(得分:5)
理论上,您的应用永远不会看到用户的密码。
在实践中,由于代码都在您的应用程序中运行,因此获取用户密码是微不足道的(并且提供类似的 UI以获取用户密码也是微不足道的。)
由于您拥有完整的源代码,因此只需调用使用用户名和密码登录的功能即可。我不推荐这个:
使用普通的Facebook登录界面有什么问题?
编辑:更多详细信息......
答案 1 :(得分:2)
对于使用OAuth的网站,例如Facebook,您尝试做的是规避用户安全。有关OAuth的简单描述,请查看以下链接:http://bit.ly/awynlU简短版本是Facebook负责对用户进行身份验证,并在其服务器上进行身份验证。正如tc所提到的,理论是你永远不会看到密码。
好,坏,或无动于衷,你想做的事情应该被阻止。如果可以这样做,则违反了网站设置的安全模型 - 在这种情况下是Facebook。
很明显,Twitter也在向OAuth迈进。根据我的信息,“从8月31日开始,所有申请都需要使用”OAuth“来访问您的Twitter帐户。”
答案 2 :(得分:1)
我想知道为什么你真的想要采用这种hackish方式。用户只需要登录一次就可以获得OAuth2令牌,然后你可以在那里发布你想要Facebook的次数,甚至没有要求用户登录Facebook。
答案 3 :(得分:1)
您应该可以使用较新的facebook SDK来实现Facebook单点登录。这样,如果用户已经在他们的设备上安装了facebook应用程序,那么他们已经登录,并且它比旧的连接弹出窗口实现更好的体验。必须允许您的应用访问其帐户,但不使用丑陋的登录屏幕。
如果他们没有安装Facebook应用程序,它将保释到浏览器。
这两种方法都会使用网址处理功能在经过身份验证后返回您的应用。
在此处详细了解:http://developers.facebook.com/docs/mobile/ios/build/#implementsso
在本地实现您自己的登录屏幕方面,这是针对Facebook的TOS,因为他们想要一致且熟悉的登录平台,以避免普遍的网络钓鱼问题等。他们大力推动教育他们的用户只提供他们的用户名和密码合法页面。