[英]Using HybridAuth in Laravel 5 Error Cannot declare class Hybrid_Auth
我正在嘗試在laravel 5.3中實現google登錄。 我使用composer安裝了hybridauth: composer require hybridauth/hybridauth
但是,首先我得到了錯誤:
“找不到類Hybrid_Auth”
因此,我添加了一個名稱namespace Hybridauth;
到Hybridauth中的每個類(項目路徑:vendor / hybridauth / hybridauth / hybridauth / Hybrid),並使用Hybridauth \\ Hybrid_Auth將其包含在我的控制器中; 但是現在我得到了錯誤:
Auth.php第16行中的FatalErrorException:“無法聲明類Hybridauth \\ Hybrid_Auth,因為該名稱已在使用中”
即使我已經搜索了整個項目,並且類Hybrid_Auth
只聲明了一次。
這是我的控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Hybridauth\Hybrid_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");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.