【问题标题】:Is code parameter Value means access_token after Facebook OAuth to my website是代码参数值表示 Facebook OAuth 到我的网站后的 access_token
【发布时间】:2016-10-18 22:26:56
【问题描述】:

我在我的网站上制作了一个用于授权用户的 Facebook APP,我正在使用 OAuth 方法。在我的网站中,我保留了一个名为“使用 Facebook 登录”的功能,当用户点击时,他会通过链接重定向到 Facebook

https://www.facebook.com/v2.2/dialog/oauth?client_id=<ID>&redirect_uri=<mysite>&state=<some random hash>&scope=

这看起来很好,现在 Facebook 要求允许,当用户单击允许时,我会在我的网站上返回一个 URL,其中包含一个名为 &code= 的特殊参数 .. 看起来像

http://mywebsite.com/facebook&code=<some huge Random code>&state=<hash>

现在,我想知道code= 参数值到底是什么,它是用户的访问令牌,因为我没有看到像access_token= 这样的特殊参数。那么有人可以告诉我代码在 OAuth 中的含义是什么,它与访问令牌相同吗? ??我如何验证它.. 请输入您的想法

【问题讨论】:

    标签: facebook api facebook-graph-api oauth


    【解决方案1】:

    您的应用需要将服务器端的code 换成access_token

    有specific documentation for this flow,但本质上是您获取代码、您的应用程序 ID、应用程序密码和您最初打开对话框时使用的 redirect_uri,然后进行 API 调用以将代码交换为访问令牌

    然后您使用访问令牌代表用户进行 API 调用

    【讨论】:

    • 完美,所以我需要在“我的服务器端”验证代码期间检查以接收access_token 吗?如果假设一个具有恶意意图的攻击者尝试使用我的“使用 Facebook 登录”按钮进行 OAuth,并在他的 URL 中获取code,那么他可以进行像抓取 OAuth 这样的恶意更改吗?我认为他一定需要我的 client_secret 对吧? :) @igy
    • 这就是'code'流程的优点之一,没有client secret,code不能换成token,基本没用
    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-20
    • 2011-09-08
    • 2011-02-22
    相关资源
    最近更新 更多