【问题标题】:Facebook App Type: Which one to pick for mobile AND web?Facebook 应用类型:为移动和网络选择哪一个?
【发布时间】:2012-07-21 18:42:14
【问题描述】:

在 Facebook 应用程序设置☞ 高级☞ 身份验证中,我可以选择“Web”或“Native/Desktop”作为应用程序类型。信息泡泡说:

如果您是原生 iOS 或 Android 应用,请仅选择 Native/Desktop, 设备或桌面应用程序

实际上我不是这些,但我的应用是原生 iOS 应用和 Facebook 页面标签。
问题:我应该选择哪种应用类型?


我做了一些研究,在Facebook Android Tutorial(在疑难解答下)中发现了以下内容:

  • 应用类型 Web vs Native/Desktop。有关系吗?:不,没关系 事情。但是,建议使用“Native/Desktop”类型 你的应用。

什么意思没关系?这对我来说没有意义。那我为什么要选择呢?

我对 SO 进行了更多研究,并通过@Igy(Facebook 的开发支持工程师)找到了this statement

如果应用的类型设置为“本机/桌面”,则假定您 将应用程序的密钥与二进制文件一起分发,因此应用程序 访问令牌不受信任(PHP SDK 中的“getAccessToken”将 仅在真实用户登录时有效,不能回退到应用令牌)

我终于在Facebook documentation找到了这个:

注意:配置为原生/桌面应用程序的应用程序不会 能够进行需要应用程序 access_token 的 API 调用。

我确实需要进行 API 调用,这需要我的页面选项卡应用程序中的访问令牌,因此我的结论是选择“Web”作为应用程序类型,尽管我有一个使用相同应用程序 ID 的本机 iOS 应用程序页面标签应用程序。但这会对 iOS 应用程序有任何缺点吗?

【问题讨论】:

    标签: ios facebook facebook-apps facebook-authentication facebook-access-token


    【解决方案1】:

    TL;DR:除非您将应用程序机密放入 iOS / Android 二进制文件中,否则请使用“网络”

    主要区别(以及它说“没关系”同时还给出建议的原因)是,如果您选择“本机/桌面”模式,则假定您将应用程序二进制文件与应用程序一起分发嵌入的秘密,并且应用秘密被认为是不受信任的。

    在此配置中,使用应用机密的 API 调用(例如创建测试用户、代表应用本身进行 API 调用,如更改应用设置、发布成就等)将不起作用。

    如果您的应用不需要使用应用密钥/应用访问令牌,则将其设置为原生/桌面会在一定程度上提高安全性,因为您的应用的攻击向量会减少。

    如果您通过代码分发应用密码,则必须使用该选项,否则用户可以轻松确定应用密码并劫持应用本身。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-12
      • 1970-01-01
      • 2012-02-03
      • 1970-01-01
      • 2012-01-11
      • 1970-01-01
      • 2019-11-05
      • 2011-02-13
      相关资源
      最近更新 更多