2

使用 Anvard 的 HybridAuth L4 包:

我已经启动并运行了所有这些,并成功尝试并在我的本地主机上完成了 LinkedIn 注册。

用户和配置文件表中的记录集已成功插入,但随后出现 InvalidArgumentException:无法重定向到空 URL

有任何想法吗?是不是因为我没有使用路由:/anvard/endpoint?我会在哪里指定这个?在 LinkedIn 应用程序详细信息?

紧抓着稻草,我将 MAMP 端口从 8888 改回了 80,因为我认为它可能与 HybridAuth 中的 base_url 有关,但这并没有做任何事情。

在 src/routes.php 目录中,似乎到达

Log::debug('Anvard: login success');
Auth::loginUsingId($profile->user->id);

然后是 InvalidArgumentException

无法重定向到空 URL。

非常感谢

乔恩

4

2 回答 2

2

在 Anvard 路由文件 [anvard/src/Atticmedia/Anvard/routes.php]

更改
返回 Redirect::back(); 重定向到您希望某人去的实际路线。

于 2013-07-21T18:18:24.867 回答
1

首先让你的编辑/app/anvar/config/routes.php看起来像这样:

<?php
return array(
    'index' => 'login',
    'login' => 'login/{provider}',
    'endpoint' => 'after/facebook',
/* note that endpoint can not be the same pattern as login
for example if I made it login/after it would go back to the login page with 'after' as $provider
*/
        );

在其中创建一个文件app/storage/logs/并将其命名为 hausth_debug_file.txt 然后将以下内容添加到您的/config/packages/anvard/hybridauth.php

"debug_mode" => true,
"debug_file" =>"D:\www\Dev\bp4\app\storage\logs\hauth_debug_file.txt",
//change this path with yours 

这将在文件中转储很多用于调试的好信息,然后您可以共享文件以帮助解决问题。所以你的文件看起来像这样:

<?php
return array(

    // 'base_url' => URL::route(Config::get('anvard::routes.login')),

    'providers' => array (


        'Facebook' => array (
            'enabled' => true,
            'keys'    => array ( 'id' => 'yourr-key', 'secret' => 'your-secret' ),
            //'scope'  => Input::get('permission_scope','email, user_about_me, user_birthday, user_hometown, user_likes, user_interests, user_location'),
        ),

        'Twitter' => array (
            'enabled' => false,
            'keys'    => array ( 'key' => '', 'secret' => '' )
        ),

        'LinkedIn' => array (
            'enabled' => false,
            'keys'    => array ( 'key' => '', 'secret' => '' )
        ),
    ),
    "debug_mode" => true,
    "debug_file" =>"D:\www\Dev\bp4\hauth_debug_file.txt",

);

或者,您可以通过 /app/start/local.php 中的 config::set 设置此配置,也可以在 /anvard/src/Atticmedia/Anvard/routes.php 中设置此配置,我认为如果您更改return Redirect::back();return Redirect::to(Config::get('anvard::routes.endpoint'));

我还必须在第 230 行附近编辑 Atticmedia/Anvard/Anvard.php 以

$profile = new $ProfileModel();
        foreach ($attributes as $key => $v) {
            $profile->$key = $v;
        }
        $profile = $this->applyAdapterProfileToExistingProfile($adapter_profile, $profile);
于 2013-08-22T18:17:14.397 回答