【问题标题】:What are values for authTokenType in the Android AccountManager getAuthToken?Android AccountManager getAuthToken 中 authTokenType 的值是什么?
【发布时间】:2012-08-26 09:41:16
【问题描述】:

Android 的 Facebook 应用程序为 AccountManager 提供了一个身份验证器。 我正在尝试使用 getAuthToken 方法获取访问令牌,但我不知道参数 authTokenType 的可能值是什么。 该参数有哪些可用值?

谢谢。

【问题讨论】:

标签: android facebook accountmanager


【解决方案1】:

您应该不可能通过 Facebook 的 Authenticator 获得访问令牌,因为这将构成一个相当严重的安全漏洞。

您应该使用此处描述的单点登录 api:https://developers.facebook.com/docs/mobile/android/build/#enablesso

那里的入门说明非常好。

如果你真的想要 facebook 使用的 authTokenType 值,你可以通过 root 手机并从身份验证数据库中读取它来获得它。但是,我认为这不会让您读取任何访问令牌,并且绝对不建议出于合法的商业目的这样做。

【讨论】:

  • 为什么会有安全漏洞?只要您知道 authTokenType(“com.google”的“ah”),AccountManager 就可以实现
  • 一个月后,我已经不记得我在想的向量了。我认为这与在没有用户输入的情况下不分青红皂白地向随机的 3rd 方应用程序发放访问令牌有关。但你是对的,Facebook 可以将他们的应用程序设置为使用 authTokenType。成功使用它需要单独安装 facebook 应用程序。移动 android 库超越了这一点,允许用户通过应用程序(如果已安装)或网络登录。相比之下,任何安卓设备都应该预装谷歌的身份验证服务。
  • 哦,我记得! facebook 登录将为 facebook 应用程序存储一个私有的身份​​验证令牌,该令牌将无限期地持续存在。这就是允许用户长时间在设备上保持登录到 Facebook 的原因。如果您可以访问该私人身份验证令牌,您将能够对 facebook 用户的帐户执行任何操作。这是一个明显的漏洞。相反,合法的第 3 方应用应使用 facebook 发布的身份验证流程。
【解决方案2】:

仅供参考,反编译 Facebook 应用程序 APK 显示 getAuthToken 方法的服务器部分未实现。

您需要使用 Facebook SDK。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 2014-09-23
    • 2017-01-25
    • 1970-01-01
    • 2011-02-12
    • 1970-01-01
    相关资源
    最近更新 更多