【问题标题】:Anvard HybridAuth Laravel implementation - Cannot redirect to an empty URLAnvard HybridAuth Laravel 实现 - 无法重定向到空 URL
【发布时间】:2013-07-20 06:18:54
【问题描述】:

使用 Anvard 的 HybridAuth L4 包:

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

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

有什么想法吗?是不是因为我没有使用路由:/anvard/endpoint?我会在哪里指定这个?在领英申请详情中?

紧紧抓住稻草,我将 MAMP 端口从 8888 改回 80,因为我认为这可能与 HybridAuth 中的 base_url 有关,但没有任何作用。

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

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

然后 无效参数异常

无法重定向到空 URL。

非常感谢

乔恩

【问题讨论】:

    标签: laravel hybridauth


    【解决方案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);
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-08
        • 2012-10-15
        • 2019-05-31
        • 2015-03-08
        • 1970-01-01
        • 2019-04-03
        • 2015-10-16
        • 1970-01-01
        相关资源
        最近更新 更多