Using Laravel Socialite to login to facebook

后端 未结 3 2187
梦毁少年i
梦毁少年i 2020-12-02 13:58

I am new to Laravel however and I am following the tutorial on http://www.codeanchor.net/blog/complete-laravel-socialite-tutorial/, to login a user through Facebook into my

3条回答
  •  长情又很酷
    2020-12-02 14:14

    Update 2018 - laravel 5.6 - socialite 3.0

    It's little bit tricky for something that looks/should be easy, but anyway this is how i make things works for me.

    Server side

    you can find those instructions and more details in socialite docs

    Installation

    composer require laravel/socialite
    

    Configuration

    in config/services.php add

    'facebook' => [
    
        'client_id'     => env('FACEBOOK_CLIENT_ID'),
        'client_secret' => env('FACEBOOK_CLIENT_SECRET'),
        'redirect'      => env('FACEBOOK_CALLBACK_URL'),
    ],
    

    in .env file add

    FACEBOOK_CLIENT_ID=paste_client_id_here
    FACEBOOK_CLIENT_SECRET=paste_client_secret_here
    FACEBOOK_CALLBACK_URL=https://www.example.com/auth/facebook/callback
    

    in routes/web.php add

    Route::get('auth/facebook/', 'Auth\FacebookController@redirect')->name('auth.facebook');
    
    Route::get('auth/facebook/callback', 'Auth\FacebookController@callback')->name('auth.facebook.callback');
    

    in App\Http\Controllers\Auth add new controller FacebookController.php

    redirect();
        }
    
    
        /**
         * Create a new controller instance.
         *
         * @return void
         */
        public function callback(Request $request)
        {
            try {
    
                $facebookAccount = Socialite::driver('facebook')->user();
    
                // your logic here...
    
                return redirect()->route('your.route.name');
    
    
            } catch (Exception $e) {
    
    
                return redirect()->route('auth.facebook');
            }
        }
    }
    

    Facebook side

    go to https://developers.facebook.com/apps and create new app (if you don't have one already)

    and make sur your app settings are like below in those screen shots:

    Important note

    If you are developing in your local machine, you have to use tools like ngrok that provide a secure link to your localhost.

    In the facebook login settings change https://www.example.com with the url provided by ngrok something like https://8b0215bc.ngrok.io.

    It is the only way that worked for me while developing in my local machine.

提交回复
热议问题