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