在Laravel 5中使用HybridAuth错误无法声明类Hybrid
我正试图在laravel 5.3中实现Google登录。 我使用作曲家安装了hybridauth: composer require hybridauth/hybridauth
但是,首先我得到了错误:
“未找到类Hybrid_Auth”
所以我添加了一个名称namespace Hybridauth;
名称namespace Hybridauth;
到Hybridauth中的每个类(项目中的路径:vendor / hybridauth / hybridauth / hybridauth / Hybrid),并使用Hybridauth Hybrid_Auth将其包含在我的控制器中; 但是现在我得到这个错误:
Auth.php第16行中的FatalErrorException:“无法声明类Hybridauth Hybrid_Auth,因为名称已在使用中”
尽管我已经搜索了整个项目,但Hybrid_Auth
类只声明了一次。
这是我的控制器:
<?php
namespace AppHttpControllers;
use IlluminateHttpRequest;
use HybridauthHybrid_Auth;
class AuthController extends Controller
{
public function googleLogin($auth=null)
{
if($auth == 'auth')
{
try
{
Hybrid_Endpoint::process();
}
catch(Exception $e)
{
return Redirect::to('googleAuth');
}
return;
}
$config = array(
"base_url" => "localhost:8000/gauth",
"providers" => array (
"Google" => array (
"enabled" => true,
"keys" => array ( "id" => "googleIdGoeshEre", "secret" => "googleSecretKeyGoeshEre" ),
"scope" => "https://www.googleapis.com/auth/userinfo.profile ". // optional
"https://www.googleapis.com/auth/userinfo.email" , // optional
"access_type" => "offline", // optional
"approval_prompt" => "force", // optional
"hd" => "domain.com" // optional
)));
$oauth = new Hybrid_Auth($config);
$provider = $oauth->authenticate("Google");
$profile = $provider->getUserProfile();
return var_dump($profile).'<br><a href="logout">Logout</a>';
}
}
?>
所以我添加了一个名称空间名称空间Hybridauth; 到Hybridauth中的每个类(项目中的路径:vendor / hybridauth / hybridauth / hybridauth / Hybrid)
在vendor
文件夹中编辑文件不是一个好主意,因为当您执行composer update
这些文件将会更新,然后您必须再次编辑。
我建议你删除你在供应商文件夹中添加的命名空间。 并添加use Hybrid_Auth;
在控制器中
确保你包含了混合认证。 require_once( "/path/to/hybridauth/Hybrid/Auth.php");
上一篇: Using HybridAuth in Laravel 5 Error Cannot declare class Hybrid
下一篇: Can't load a Non