【问题标题】:Different types of facebook access token不同类型的 facebook 访问令牌
【发布时间】:2012-12-04 09:57:32
【问题描述】:

我有点困惑。如果有人能向我澄清一下,我会很高兴-

我通过以下方式得到的token有什么区别:

  1. 以这种方式获取令牌:https://graph.facebook.com/oauth/access_token? client_id=YOUR_APP_ID &client_secret=YOUR_APP_SECRET &grant_type=client_credentials
  2. 与使用 Javascript SDK 获取令牌相比 - FB.getAuthResponse()['accessToken']

它们看起来都不一样,我不明白我应该使用哪个。

谢谢!

【问题讨论】:

  • 小心client_secret=YOUR_APP_SECRET,您不得在客户端代码中使用它(例如浏览器中的javascript、移动应用程序)。

标签: facebook facebook-graph-api oauth-2.0 facebook-oauth facebook-access-token


【解决方案1】:

第一种方法记录在 facebook 文档中的 Login as an App 下:

作为应用程序登录允许您获取访问令牌,该令牌允许 您代表应用程序向 Facebook API 发出请求,而不是 比用户。这很有用,例如修改参数 您的应用程序,创建和管理测试用户,或阅读您的应用程序的 例如洞察力。应用访问令牌也可用于发布 代表已授予发布权限的用户向 Facebook 提供内容 您的应用程序的权限。

如文档中所述,您应该只在服务器端编码中使用此方法,这样您的代码更能免受恶意攻击者的攻击(与客户端代码相比)。请记住:绝对不能与任何人共享您的应用程序密码,这一点很重要。将应用程序机密视为您的应用程序帐户密码。如果其他人获得了您的应用程序机密,则您的应用程序可能会受到损害。该方法对应OAuth 2.0中的Client Credential Grant

第二种方法适用于可能没有服务器端编码的客户端应用程序。这允许您的应用代表授权用户进行 API 调用。在 SDK 的覆盖下,该方法对应 OAuth 2.0 中的Implicit Grant

现在你应该知道这两种方法的存在是因为facebook采用了OAuth 2.0。

为了全面了解这两种方法的用法和区别,我强烈建议您阅读RFC 6749 - The OAuth 2.0 Authorization Framework。如果您发现文本难以阅读,您可以使用一些易于阅读的应用程序,例如Evernote Clearly on Google Chrome。有关 OAuth 2.0 的简化、更易于理解的版本,您可以阅读 Aaron Parecki 的 OAuth 2 Simplified

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2012-06-02
    • 2012-06-05
    • 2012-08-16
    相关资源
    最近更新 更多