簡體   English   中英

找不到類別“ App Http Controllers Auth User”

[英]Class 'App Http Controllers Auth User' not found

嘗試在我的Laravel應用中集成Google登錄時遇到此錯誤:

找不到類“ App \\ Http \\ Controllers \\ Auth \\ User”

namespace App\Http\Controllers\Auth;

use Illuminate\Http\Request;
use App\Http\Controllers\Controller;

class SocialiteController extends Controller
{
public function __construct()
{
    $this->middleware('guest')->except('logout');
}


public function redirectToGoogle()
{
    return \Socialite::driver('google')->redirect();
}


public function handleGoogleCallback(Request $request)
{
    $googleUser = \Socialite::driver('google')->stateless()->user();

    $user = \User::whereGoogleId($googleUser->id)->first();

    if ($user) {
        Auth::login($user);

        return LoginController::authenticated($request, $user);
    } else {
        list($first_name, $last_name) = explode(' ', $googleUser->name);
        // signup
        $input = [
            'first_name' => $first_name,
            'last_name' => $last_name,
            'email' => $googleUser->email,
        ];

        $request->session()->flash('google_token', $googleUser->accessToken);

        return RegisterController::showRegistrationForm()->withInput($input)->with;
    }
}

另外,我不知道USER的完整名稱空間,這是我的新手。

如果您能提供有效的教程,我將不勝感激。 您能給我建議解決方案嗎?

更新資料

如果打算使用Laravel提供的默認User模型,則應將User類存儲在/app目錄中(請首先檢查它)。

鑒於您的用戶模型位於app/Model目錄中,請像下面這樣更新代碼:

namespace App\Http\Controllers\Auth;

// some imports..

use App\Model\User; // <------

class SocialiteController extends Controller
{

    // some code..

    public function handleGoogleCallback(Request $request)
    {

        // more code..

        $user = User::whereGoogleId($googleUser->id)->first();
//              ^^^^
        // ...
    }
}

注意:顯示以下錯誤:

400錯誤的請求響應:

 { "error": "invalid_grant", "error_description": "Bad Request" } 

這與您的Google應用程序密鑰有關。 這是另一個問題的一部分。

如果User模型文件位於名為Model yuo的文件夾下,則必須調用User類的完全限定名稱或在代碼中添加use語句,即:

$user = \Model\User::whereGoogleId($googleUser->id)->first();

// or this solution
use \Model\User;
....
$user = User::whereGoogleId($googleUser->id)->first();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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