Home > Enterprise >  Laravel Socialite Facebook login not working ( AuthController does not exist )
Laravel Socialite Facebook login not working ( AuthController does not exist )

Time:10-29

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

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');
  • Related