gpt4 book ai didi

objective-c - 使用 OAuth/XAuth(?) 以编程方式登录 Facebook

转载 作者:太空狗 更新时间:2023-10-30 03:59:52 26 4
gpt4 key购买 nike

我正在制作一个需要能够将故事分享到 Facebook 的应用程序,使用以编程方式设置在某处的密码和电子邮件地址(不使用 Facebook-Connect,主要是因为我想要我的自己的设计,无论您是从应用程序登录 Twitter 还是 Facebook)。

我已经使用 Twitter 和 XAuth 完成了这项工作,效果非常好。有什么办法可以通过 Facebook 或常规 OAuth 实现相同的效果吗? (或者 Facebook 是否支持 XAuth,这样会容易很多?)
有没有其他方法可以实现我想要的?

最佳答案

从理论上讲,您的应用永远不会看到用户的密码。

实际上,由于所有代码都在您的应用中运行,因此获取用户密码很简单(呈现类似用户界面以获取用户密码也同样简单)。

由于您拥有完整的源代码,因此只需调用使用用户名和密码登录的函数就足够容易了。我不推荐这个:

  • Facebook 可能不会喜欢它,并且可能会撤销您应用的 API key 。
  • 除非绝对必要,否则您不应该存储用户名/密码,尤其是在 NSUserDefaults(Settings.app 使用的)中,因为它是完全未加密的。
  • Setting.app 不支持密码字段。
  • 用户不必退出您的应用、转到“设置”、添加登录详细信息,然后再切换回您的应用。 “多任务处理”一点好一些,但也好不了多少。

使用普通的 Facebook 登录屏幕有什么问题?

编辑:更多细节...

  • 据我所知,您无法可靠地加密由 Settings.app 保存的 NSUserDefaults。您无法决定将其写入哪个文件(我认为是 Library/Preferences/com.example.myapp.plist)。在 iOS 4 中,你可以设置 NSFileProtectionKey=NSFileProtectionComplete,但是这有很多问题:
    • 您在您的应用程序中设置它。用户可以在运行您的应用程序之前转到 Settings.app。
    • 虽然据说可以在您的应用程序 zip/ipa 中包含 Library/Preferences/com.example.myapp.plist,但我认为不可能包含 NSFileProtectionKey 属性。
    • NSUserDefaults 通过将新 plist 写入新文件并重命名旧文件来“自动”更新 plist。新文件不太可能有 NSFileProtectionKey=NSFileProtectionComplete。
    • 最终,如果您将数据控制权交给无法保证安全性的 API,那么它就是不安全的(NSUserDefaults 似乎容易留下很多 临时文件......)。 Apple 提供了专门用于存储密码的钥匙串(keychain)(甚至还有一些不错的示例代码!);使用它。
  • Apple 不建议使用 Settings.bundle 和您自己的设置屏幕 — 您应该选择其中之一。

关于objective-c - 使用 OAuth/XAuth(?) 以编程方式登录 Facebook,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3816842/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com