Facebook graph api 此代码与Oauth 2.0兼容吗?

Facebook graph api 此代码与Oauth 2.0兼容吗?,facebook-graph-api,oauth,facebook,oauth-2.0,Facebook Graph Api,Oauth,Facebook,Oauth 2.0,Facebook宣布所有应用程序必须在2011年10月1日之前迁移到OAuth 2.0 2011年10月1日OAuth 2.0迁移正如我们在5月份宣布的,所有应用程序 必须迁移到OAuth 2.0进行身份验证,并且需要加密 访问令牌。旧SDK,包括旧JSSDK和旧iOS SDK 将不再有效 请在此处阅读更多信息: 现在我对所有不同的流程和版本感到非常困惑。我有一个简单的身份验证,看起来基本上是这样的(我去掉了不必要的部分) 当用户返回时 ## authentication check #

Facebook宣布所有应用程序必须在2011年10月1日之前迁移到OAuth 2.0

2011年10月1日OAuth 2.0迁移正如我们在5月份宣布的,所有应用程序 必须迁移到OAuth 2.0进行身份验证,并且需要加密 访问令牌。旧SDK,包括旧JSSDK和旧iOS SDK 将不再有效

请在此处阅读更多信息:

现在我对所有不同的流程和版本感到非常困惑。我有一个简单的身份验证,看起来基本上是这样的(我去掉了不必要的部分)

当用户返回时

    ## authentication check ##

    $code = isset($_GET["code"]) ? $_GET["code"] : false;
    if(!$code) {
        // user has not authenticated yet, lets return false so setup redirects him to facebook
        return false;
    }
    $url = "https://graph.facebook.com/oauth/access_token?client_id=".$this->appid."&redirect_uri=";
    $redirecturl = urlencode($redirecturl);     
    $url .= $redirecturl;
    $url .= "&client_secret=".$this->secret;
    $url .= "&code=".$code;
    $data = $this->get_data($url); // fetches content over https

    parse_str($data,$data);
    $token = $data['access_token'];
    $data = $this->get_data('https://graph.facebook.com/me?access_token='.urlencode($token));
    $data = json_decode($data);

    $id = $data->id;

    if($id > 0) {

        // yeah authenticated!

    } else {
        // login failed
    }

此方法可用于强制迁移吗?

简短回答。。。oauth2规范辩称,客户端应该如何对令牌端点进行身份验证。它还说响应应该是json。也就是说:部分不符合标准。TokenEndpoint实现不确认OAUTH2标准。在URL中使用客户机_secret执行get不是标准要求的方式。而且,它违反了安全逻辑,这在标准中被仔细描述过。我能说什么呢。你说得对。我想我指的是当时未完成的标准。毕竟已经两年了。。。
    ## authentication check ##

    $code = isset($_GET["code"]) ? $_GET["code"] : false;
    if(!$code) {
        // user has not authenticated yet, lets return false so setup redirects him to facebook
        return false;
    }
    $url = "https://graph.facebook.com/oauth/access_token?client_id=".$this->appid."&redirect_uri=";
    $redirecturl = urlencode($redirecturl);     
    $url .= $redirecturl;
    $url .= "&client_secret=".$this->secret;
    $url .= "&code=".$code;
    $data = $this->get_data($url); // fetches content over https

    parse_str($data,$data);
    $token = $data['access_token'];
    $data = $this->get_data('https://graph.facebook.com/me?access_token='.urlencode($token));
    $data = json_decode($data);

    $id = $data->id;

    if($id > 0) {

        // yeah authenticated!

    } else {
        // login failed
    }