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