2017-01-06 8 views
0

laravel 5.3でGoogleログインを実装しようとしています。最初、私はエラーを得た、しかしcomposer require hybridauth/hybridauthLaravel 5でHybridAuthを使用するエラーHybrid_Authクラスを宣言できません

::私は作曲を使用してhybridauthインストールだから私はHybridauth(プロジェクト内のパス内の各クラスに名前空間namespace Hybridauth;を追加

"Class Hybrid_Auth not found"

:ベンダー/ hybridauth/hybridauth/hybridauth /ハイブリッド)を使用して私のコントローラーにそれを組み込んだ、Hybridauth \ Hybrid_Auth;私はプロジェクト全体と Hybrid_Authは一度だけ宣言されたクラスを検索したにもかかわらず

FatalErrorException in Auth.php line 16: "Cannot declare class Hybridauth\Hybrid_Auth, because the name is already in use"

:しかし、今、私はエラーを取得します。

<?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>'; 
    } 
    } 
?> 

答えて

0

So I added a namespace namespace Hybridauth; to each class in Hybridauth (path in project: vendor/hybridauth/hybridauth/hybridauth/Hybrid)

編集ファイルフォルダvendorにアップデートを取得しますcomposer updateそれらのファイルを実行するとき、あなたは再び編集する必要があるため、良いアイデアではありません。

は、ここに私のコントローラです。

ベンダフォルダに追加した名前空間を削除することをお勧めします。コントローラーにuse Hybrid_Auth;を追加してください。

ハイブリッド認証が含まれていることを確認してください。 require_once("/path/to/hybridauth/Hybrid/Auth.php");

関連する問題