1) Buat facebook app di https://developers.facebook.com/apps
kemudian tambahkan product yaitu Facebook Login
pada Valid OAuth redirect URIs masukan
http://domainanda.com/auth/facebook
lalu SAVE
2) Tambahkan Route pada aplikasi laravel anda yaitu.
//auth facebook Route::get('auth/facebook', 'Auth\AuthController@redirectToProvider'); Route::get('auth/facebook/callback', 'Auth\AuthController@handleProviderCallback');
3) Tambahkan pada file composer.json yaitu.
"laravel/socialite": "^2.0"
kemudian ketik pada shell.
composer update
4) pada config/app.php tabhakan provider
Laravel\Socialite\SocialiteServiceProvider::class,
dan pada alias
'Socialite' => Laravel\Socialite\Facades\Socialite::class,
5) Dan pada authController tambahkan kode seperti berikut.
public function redirectToProvider() { return Socialite::driver('facebook')->redirect(); } public function handleProviderCallback() { try { $user = Socialite::driver('facebook')->user(); } catch (Exception $e) { return redirect('auth/facebook'); } $authUser = $this->findOrCreateUser($user); Auth::login($authUser, true); return Redirect::to('/'); } private function findOrCreateUser($facebookUser) { $authUser = User::where('facebook_id', $facebookUser->id)->first(); if ($authUser){ return $authUser; } if($facebookUser->getEmail()) { $email = $facebookUser->getEmail(); } else { $email = $facebookUser->getId() . '@facebook.com'; } $username = $facebookUser->getId() . str_random(5); return User::create([ 'name' => $facebookUser->getName(), 'email' => $email, 'username' => $username, 'facebook_id' => $facebookUser->getId(), 'foto' => $facebookUser->getAvatar() ]); }
6) Lalu pada config/service.php tambahkan kode berikut ini.
'facebook' => [ 'client_id' => env('FACEBOOK_CLIENT_ID'), 'client_secret' => env('FACEBOOK_CLIENT_SECRET'), 'redirect' => env('FACEBOOK_CALLBACK_URL'), ],
Tidak ada komentar:
Posting Komentar