Di halaman tutorial kali ini, penulis akan mencoba menyajikan bagaimana prosess login AUTH dengan Facebook API untuk PHP. Dimana pada kesempatan ini data user yang login akan kita simpan kedalam database dan sewaktu-waktu ketika usr login kembali data yang sudah ada bisa digunakan untuk proses autentifikasi pada user.



Proses login menggunakan Facebook API di gambarkan seperti pada gambar berikut:



Bagaimana cara memulai, di awal temen sekalian di haruskan untuk berkunjung ke website developer nya facebook, untuk membuat aplikasi login pada halaman developer. Dimana facebook API-KEY dan SECRET, kita dapatkan pada saat membuat aplikasi di halaman developer tersebut.


Kemudian download library Facebook API untuk PHP dan mari kita mulai masuk kedalam kode PHP.


<?php

// database settings 
$db_username = 'root';
$db_password = '';
$db_name = 'oauth';
$db_host = 'localhost';
// untuk koneksi database
try {
    mysql_connect($db_host, $db_username, $db_password) or die(mysql_error());
    mysql_select_db($db_name) or die(mysql_error());
} catch (Exception $exc) {
    echo $exc->getTraceAsString();
}

require 'src/facebook.php';
$scope = 'email'; // scope for login
// your configuration
$conf = array(
    'fb-apiID' => '221369114708367',
    'fb-apiSecret' => '549df1e3d2a1cb0dcdcc3187b60d6649'
);
$facebook = new Facebook(array(
    'appId' => $conf['fb-apiID'],
    'secret' => $conf['fb-apiSecret']
        ));
$user = $facebook->getUser(); 
if ($user) {
    try {
        $user_profile = $facebook->api('/me');
        $add = array(
            'id' => time(),
            'username' => $user_profile['username'],
            'email' => $user_profile['email'],
            'photo' => "https://graph.facebook.com/$user/picture",
            'gender' => $user_profile['gender']
        );
        $data = mysql_query("SELECT * FROM fb_login WHERE email='$add[email]'");
        if (mysql_num_rows($data) == 0) {
            mysql_query("INSERT into fb_login (id,username,email,photo,gender) VALUES ('$add[id]','$add[username]','$add[email]','$add[photo]','$add[gender]')") or die(mysql_error());
            // set cookie
            setcookie('login_fb', $add['id'], time() + 3600);
        } else {
            $row = mysql_fetch_object($data);
            setcookie('login_fb', $row->id, time() + 3600);
        }
    } catch (FacebookApiException $e) {
        error_log($e);
        $user = null;
    }
}
if (isset($_COOKIE['login_fb'])) {
    $logoutUrl = $facebook->getLogoutUrl();
} else {
    $loginUrl = $facebook->getLoginUrl(array(
        'scope' => $scope
    ));
    print('<script> top.location.href='' . $loginUrl . ''</script>');
}
include 'form.php';
 


Karna data login pengguna akan kita tampung ke dalam database, kita diharuskan untuk membuat database untuk menampung data user yang login menggunakan facebook.


CREATE DATABASE /*!32312 IF NOT EXISTS*/`oauth` /*!40100 DEFAULT CHARACTER SET utf8 */;

USE `oauth`;

/*Table structure for table `fb_login` */

DROP TABLE IF EXISTS `fb_login`;

CREATE TABLE `fb_login` (
  `id` int(10) NOT NULL,
  `username` varchar(45) DEFAULT NULL,
  `email` varchar(45) DEFAULT NULL,
  `photo` varchar(225) DEFAULT NULL,
  `gender` enum('male','female') DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;


Ketika prosess login telah selesai dan data ditampung kedalam database, maka informasi user yang login akan kita tampilkan pada halaman login tersebut


<!doctype html>
<html xmlns:fb="http://www.facebook.com/2008/fbml">
    <head>
        <title>php-sdk</title>
        <style>
            body {
                font-family: 'Lucida Grande', Verdana, Arial, sans-serif;
            }
            h1 a {
                text-decoration: none;
                color: #3b5998;
            }
            h1 a:hover {
                text-decoration: underline;
            }
        </style>
    </head>
    <body>
        <h1>php-sdk</h1>

        <?php if (isset($_COOKIE['login_fb'])): ?>
        <a href="<?php echo $logoutUrl; ?>">Logout From FB</a> or <a href="logout.php">Logout Session</a>
        <?php else: ?>
            <div>
                Login using OAuth 2.0 handled by the PHP SDK:
                <a href="<?php echo $loginUrl; ?>">Login with Facebook</a>
            </div>
        <?php endif ?>

        <?php if (isset($_COOKIE['login_fb'])): ?>
            <h3>You</h3>
            <img src="https://graph.facebook.com/<?php echo $user; ?>/picture">

            <h3>Your User Object (/me)</h3>
            <pre><?php print_r($user_profile); ?></pre>
        <?php else: ?>
            <strong><em>You are not Connected.</em></strong>
        <?php endif ?>

    </body>
</html>


Tautan logout pada aplikasi login kali ini terdapat dua buat, yang pertama logout dengan membuang semua session pada facebook.com dan yang kedua hanya membuang COOKIE login pada halaman loginyang kita buat.


<?php

setcookie('username', ''); // remove cookie
header("Location: index.php"); // redirect to index


Semoga bermanfaat untuk mencoba hasilnya silahkan kunjungi halaman demo dan untuk mendapatkan sorce kode applikasi login dengan facebook klik pada tautan download


 
Bagikan halaman ke sosial media
 
Tags :   facebook    oauth    facebookAPI       

Tentang Penulis

writer hadinug
Web Developer di PT. Yafii Solusi Internasional

Link: http://ysi.co.id

   Komentar Anda