Внедрение Anvard HybridAuth Laravel - невозможно перенаправить на пустой URL
Использование пакета Anvard HybridAuth L4:
Я все это запустил и успешно выполнил попытку и прошел регистрацию в LinkedIn на моем локальном хосте.
Наборы записей в таблицах пользователей и профилей успешно вставлены, но затем я получаю исключение InvalidArgumentException: невозможно перенаправить на пустой URL
Есть идеи? Это потому, что я не использовал маршрут: /anvard/endpoint? Где бы я это уточнил? В деталях приложения LinkedIn?
Держась за соломинку, я изменил порт MAMP с 8888 на 80, так как подумал, что, возможно, это как-то связано с base_url в HybridAuth, но это ничего не дало.
В директории src / rout.php кажется, что
Log::debug('Anvard: login success');
Auth::loginUsingId($profile->user->id);
И тогда InvalidArgumentException
Невозможно перенаправить на пустой URL.
большое спасибо
Джон
2 ответа
В файле маршрута Anvard [anvard / src / Atticmedia / Anvard / rout.php]
+ Изменить
return Redirect::back(); перенаправить на фактический маршрут, по которому вы хотите, чтобы кто-то пошел
Прежде всего, сделайте правку /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/
и назовите его hauth_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",
);
В качестве альтернативы вы можете установить эти конфигурации с помощью config::set в вашем /app/start/local.php также в /anvard/src/Atticmedia/Anvard/routes.php. Я думаю, что это работает лучше, если вы измените return Redirect::back();
в return Redirect::to(Config::get('anvard::routes.endpoint'));
Мне также пришлось редактировать Atticmedia / Anvard / Anvard.php около строки 230, чтобы
$profile = new $ProfileModel();
foreach ($attributes as $key => $v) {
$profile->$key = $v;
}
$profile = $this->applyAdapterProfileToExistingProfile($adapter_profile, $profile);