facebook - laravel4 hybridauth facebook 身份验证失败! Facebook 返回了无效的用户 ID

标签 facebook laravel laravel-4 hybridauth

好的,我正在尝试将 Hybridauth 与 laravel 4 一起使用。但是,在尝试使用 facebook 登录时,我似乎变得非常普遍:

Authentication failed! Facebook returned an invalid user id.

我已经阅读了所有其他帖子,但没有运气,所以只希望有人能帮助我。

我遵循了本教程:http://www.mrcasual.com/on/coding/laravel4-package-management-with-composer/

并尝试了其他几种配置均未成功。

这是我的配置/hybridauth.php

<?php
return array(
    "base_url"   => "http://myapp.dev/social/auth/",
    "providers"  => array (
        "Facebook"   => array (
            "enabled"    => true,
            "keys"       => array ( "id" => "****", "secret" => "****" ),

        ),
    ),
);

这是我的路线:

Route::get('social/{action?}', array("as" => "hybridauth", function($action = "")
{
    // check URL segment
    if ($action == "auth") {
        // process authentication
        try {
            Hybrid_Endpoint::process();
        }

        catch (Exception $e) {
            // redirect back to http://URL/social/
            return Redirect::route('hybridauth');
        }
        return;
    }

    try {
        // create a HybridAuth object
        $socialAuth = new Hybrid_Auth(app_path() . '/config/hybridauth.php');
        // authenticate with Facebook
        $provider = $socialAuth->authenticate("Facebook");
        // fetch user profile
        $userProfile = $provider->getUserProfile();
    }

    catch(Exception $e) {
        // exception codes can be found on HybBridAuth's web site
        return $e->getMessage();
    }

    // access user profile data
    echo "Connected with: <b>{$provider->id}</b><br />";
    echo "As: <b>{$userProfile->displayName}</b><br />";
    echo "<pre>" . print_r( $userProfile, true ) . "</pre><br />";

    // logout
    $provider->logout();
}));

因此,当我访问“myapp.dev/social”时,我被带到了 facebook 注册页面,一切似乎都正常,要求我允许对 myadd.dev 的权限。单击“确定”后,我将转到以下 URL:http://myapp.ie/social#_=_,其中显示了错误。

不确定这是否相关: 仅通过观察与 facebook 登录合作的其他网站.. 重定向 URL 看起来像 http://somesite.dev/subdomain/#_=_ 。换句话说,它们在#= 之前有一个斜线。这是我的问题,我该如何解决?? hybridauth 非常新,所以非常感谢任何帮助。

哦,我确实意识到这篇文章与其他文章非常相似,但我还没有找到解决方案。

更新:确切的错误:身份验证失败。用户已取消身份验证或提供商拒绝连接。

最佳答案

在 base_facebook.php 中执行以下操作

  public static $CURL_OPTS = array(
    CURLOPT_CONNECTTIMEOUT => 50,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_TIMEOUT        => 60,
    CURLOPT_USERAGENT      => 'facebook-php-3.2',
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => false,
  );

  protected $trustForwarded = true;
  protected $allowSignedRequest = false;

关于facebook - laravel4 hybridauth facebook 身份验证失败! Facebook 返回了无效的用户 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17515618/

相关文章:

php - 如何在 LARAVEL 4 上使用 TCPDF

Facebook 聊天插件未显示在我的网站上

javascript - 使 facebook 登录与 Android Webview 一起工作

android - Facebook 登录按钮阻止整个 Android Activity

php - Laravel/Eloquent 查询出错

laravel - laravel 存储文件夹的服务器权限重置

facebook - flutter_auth 要求 facebook 登录的访问 token 是什么?

php - Laravel/PHP 单元 : Asserting sameness of two models

.htaccess - 如何将 Access-Control-Allow-Origin 限制为特定路径?

php - 何时使用 Facades 何时注入(inject)依赖