I am trying to include Facebook login in my project but I get error AuthController.php does not exist, can anyone please help me with the solution or what the mistake I did?
config/services.php
'facebook' => [
'client_id' => env('FACEBOOK_CLIENT_ID'),
'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
'redirect' => 'https://www.sehhaty.so/login/facebook/callback',
],
.env
FACEBOOK_CLIENT_ID=MY_FACEBOOK_APP_ID
FACEBOOK_CLIENT_SECRET=MY_FACEBOOK_SECRET
web.php
Route::get('login/facebook', 'App\Http\Controller\AuthController@redirectToProviderFacebook')->name('auth.facebook.redirect');
Route::get('login/facebook/callback', 'App\Http\Controller\AuthController@handleProviderCallbackFacebook')->name('auth.facebook.callback');
AuthController.php
public function redirectToProviderFacebook()
{
return Socialite::driver('facebook')->redirect();
}
public function handleProviderCallbackFacebook()
{
$user = Socialite::driver('facebook')->user();
$email = $user->email;
$db_user = User::where('email', '=', $email)->first();
if ($db_user == null) {
$registerd_user = User::create(['name' => $user->nickname, 'phone' => '01029360040', 'email' => $user->email, 'password' => Hash::make('12345678'), 'oauth_token' => $user->token]);
Auth::login($registerd_user);
} else {
Auth::login($db_user);
}
return redirect(route('home'));
}
the error
CodePudding user response:
Namespace for your controller will be App\Http\Controllers\AuthController
and not App\Http\Controller\AuthController
, you are missing letter s
in the word Controller.
By the way you can uncomment $namespace
in RouteServiceProvider and then you don't have to write a full namespace:
https://laravel.com/docs/8.x/upgrade#automatic-controller-namespace-prefixing
Route::get('login/facebook', 'AuthController@redirectToProviderFacebook')->name('auth.facebook.redirect');