Membuat Login Dengan Akun Facebook di PHP

Membuat Login Dengan Akun Facebook di PHP
Kalau tutorial sebelumnya kita mencoba dengan akun google, kali ini kita mencoba dengan akun facebook. Ok langsung saja berikut caranya:

1. Download oauth2 facebook https://github.com/thephpleague/oauth2-facebook
2. Setelah oauth2 facebook di ekstrak di htdocs, lalu Run composer install -> Ketik di CMD composer install dan tekan enter., Jika belum punya silahkan download di https://getcomposer.org/download/

3. Sebelum masuk ke langkah 4 kita perlu login ke facebook

4. Masuk ke facebook develepor https://developers.facebook.com/?locale=en_EN

Kemudian klik My Apps
Klik Create App
Create App Id, Masukan nama dan email kemudian klik Create App ID

Tampilan setelah create Appid

 

– Klik pengaturan -> lalu klik dasar
Copy ID Aplikasi dan Kunci Rahasia Aplikasi

– Upload icon aplikasi, ukuran gambar harus 1024×1024 px ya, Lalu simpan perubahan

 

5. Klik tambah produk

 

– Klik siapkan “masuk facebook”

– Klik pengaturan pada “masuk facebook”

 

– Masukan url pada Redirect URI OAuth Valid

Untuk menyesuaikan saya menggunakan url https://localhost/facebook/index.php lalu simpan perubahan.

Ok difacebook kita sudah selesai, langkah selanjutnya kita masukan ‘clientId‘ dan ‘clientSecret‘ pada script. Client ID adalah ID Aplikasi dan clientSecret adalah Kunci Rahasia Aplikasi. Kita masukan kedalam script index.php contohnya seperti berikut:

index.php

<?php
session_start();
include 'oauth2-facebook/vendor/autoload.php';
$provider = new \League\OAuth2\Client\Provider\Facebook([
    'clientId'          => 'ID Aplikasi',
    'clientSecret'      => 'Kunci Rahasia Aplikasi',
    'redirectUri'       => 'https://localhost/facebook/index.php',
    'graphApiVersion'   => 'v2.10',
]);

if (!isset($_GET['code'])) {

    // Menampilkan link login facebook
    $authUrl = $provider->getAuthorizationUrl([
        'scope' => ['email'],
    ]);
    $_SESSION['oauth2state'] = $provider->getState();
    
    echo '<a href="'.$authUrl.'">Log in with Facebook!</a>';
    exit;

// Check given state against previously stored one to mitigate CSRF attack
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {

    unset($_SESSION['oauth2state']);
    echo 'Invalid state.';
    exit;

}

// Mendapatkan token
$token = $provider->getAccessToken('authorization_code', [
    'code' => $_GET['code']
]);

try {

    // We got an access token, let's now get the user's details
    $user = $provider->getResourceOwner($token);
    //masukan data array ke dalam session
    $_SESSION['fb'] = $user->toArray();
//alihkan ke dashboard
    header("location: dashboard.php");

} catch (\Exception $e) {

    // Failed to get user details
    exit('Oh dear...');
}
?>

Lalu kita akan mencoba menampilkan data login kedalam script dashboard.php contohnya sebagai berikut:

dashboard.php

<?php
session_start();
$fb = $_SESSION['fb'];
echo "<b>Anda berhasil login!!</b>" . "<br>";
echo "Name: ". $fb['name'] . "<br>";
echo "First name: ". $fb['first_name'] . "<br>";
echo "Last name: ". $fb['last_name'] . "<br>";
echo "Email: ". $fb['email'] . "<br>";
echo "<img src='".$fb['picture_url'] . "' /><br>";
?>

Jika semuanya sudah dibuat kita dapat mencoba dengan memanggil url http://localhost/facebook/

Struktur folder

Untuk membuat logoutnya sama saja seperti pada tutorial sebelumnya. Tutorial yang bersangkutan Membuat Login Dengan Akun Google di PHP

Untuk di facebook saat memasukan Redirect URI OAuth Valid harus url https, tidak bisa http.

Related posts

Leave a Comment