簡體   English   中英

在Laravel 5錯誤中使用HybridAuth無法聲明類Hybrid_Auth

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM