Sabtu, 15 Oktober 2016

Tutorial menggunakan autentikasi facebook untuk login ke aplikasi website dengan PHP


Metode ini sering digunakan oleh para web developer untuk aplikasi berbasis web, dimana proses login cukup menggunakan akun-akun yang ada di beberapa web service seperti facebook, google, twitter dan lain-lain.


Untuk kali ini saya menggunakan facebook sebagai sarana login untuk masuk kedalam halaman member.

1. Yang dibutuhkan adalah sebuah librari HybridAuth yang dapat di download di Github Download .

HybridAuth dapat menggunakan beberapa autentikasi yang disediakan yaitu :
  •     Facebook
  •     Twitter
  •     Google
  •     Yahoo
  •     LinkedIn
  •     Live
  •     AOL
  •     MySpace
  •     Github 
2. Kedua kita harus mempunyai Facebook API ID dan SECRET KEY dari facebook dan bisa dibuat di https://developers.facebook.com/apps/

3. Kita harus memiiliki domain yang valid alias tidak gratisan, karena disaat membuat Facebook API ID akan ditanyakan domain tersebut.

setelah syarat semua di atas terpenuhi, maka berikut coding PHP-nya.
1. Buat file config.php

$config = array("base_url" => "diisi dengan OAuth2 URL anda", 
        "providers" => array ( 
            "Facebook" => array ( 
                "enabled" => true,
                "keys"    => array ( "id" => "FACEBOOK_DEVELOER_KEY", "secret" => "FACEBOOK_SECRET" ),
                "scope" => "email, user_about_me, user_birthday, user_hometown"  //optional.              
            ),
        ),
        // if you want to enable logging, set 'debug_mode' to true  then provide a writable file by the web server on "debug_file"
        "debug_mode" => false,
        "debug_file" => "debug.log",
    );
base_url diisi dengan alamat index.php dari HybridAuth library yang sudah kita upload ke webserver. di tempat saya, saya isi dengan http://demos.antefer.web.id/oauth2demo/hybridauth/index.php.
file tersebut berisi fungsi sebagai halaman OAuth Callback .

2. Buat file index.php sebagai halaman utama, seperti ini :
<html>
<body>
    <a href="https://nama.domain.anda/login-proses.php?provider=Facebook">Login Dengan Facebook</a>
</body>
</html>


3. kemudian buat file login-proses.php

<?php
session_start();
include('config.php');
include('hybridauth/Hybrid/Auth.php');
if(isset($_GET['provider']))
{
$provider = $_GET['provider'];
try{
    $hybridauth = new Hybrid_Auth( $config );
    $authProvider = $hybridauth->authenticate($provider);
    $user_profile = $authProvider->getUserProfile();
    if($user_profile && isset($user_profile->identifier))
    {
        echo "<b>Name</b> :".$user_profile->displayName."<br>";
        echo "<b>Profile URL</b> :".$user_profile->profileURL."<br>";
        echo "<b>Image</b> :".$user_profile->photoURL."<br> ";
        echo "<img src='".$user_profile->photoURL."'/><br>";
        echo "<b>Email</b> :".$user_profile->email."<br>";
        echo "<br> <a href='logout.php'>Logout</a>";
    }           
 
    }
    catch( Exception $e )
    { 
         switch( $e->getCode() )
         {
                case 0 : echo "Unspecified error."; break;
                case 1 : echo "Konfigurasi Hybridauth error."; break;
                case 2 : echo "Provider tidak terkonfigurasi."; break;
                case 3 : echo "Provider tidak aktif."; break;
                case 4 : echo "Kesalahan konfigurasi API."; break;
                case 5 : echo "Autentikasi di batalkan oleh user atau autentikasi di tolah provider";
                         break;
                case 6 : echo "Gagal menanpilkan user profile.";
                         $authProvider->logout();
                         break;
                case 7 : echo "User tidak memilik akun di provider.";
                         $authProvider->logout();
                         break;
                case 8 : echo "Provider tidak support dengan metode ini."; break;
        }
 
        echo "<br /><br /><b>Original error message:</b> " . $e->getMessage();
 
        echo "<hr /><h3>Trace</h3> <pre>" . $e->getTraceAsString() . "</pre>";
 
    }
 
}
?>

4. Kemudian buat file logout.php untuk proses logout

<?php
session_start();
session_destroy();
header("Location: index.php");
?>


Demikian sedikit sharing dari saya, semoga bermanfaat dan bisa di kembangkan menggunakan service yang lain seperti autentikasi google,  twitter, dan lain-lain sesuai kebutuhan...
O iya..... untuk demo dapat dicoba di http://demos.antefer.web.id/oauth2demo/.

Demo tersebut tidak menyimpan informasi anda kedalam database, murni authentikasi via Facebook. 

Tidak ada komentar:

Posting Komentar

Hubungi saya

Nama

Email *

Pesan *



* maaf buat teman-teman yang belum di respons komentarnya di disqus (karena penullisnys sok sibuk sie...), bisa hubungi lewat sini ya...

Tentang Blog

Banyak sekali informasi-informasi tentang dunia TI (Teknologi Informasi) yang sekarang merupakan sebuah kebutuhan yang boleh dibilang sudah menjadi kebutuhan utama dalam pekerjaan. Tetapi teknologi juga sering digunakan untuk kepentingan yang merugikan orang lain, misal carding, cracking, dan lain-lain. Dengan internet saya mendapat banyak sekali masukkan yang membangun, dengan blog ini saya ingin berbagi pengalaman tentang ilmu komputer yang saya dapat.

Penulis

authorHallo, Nama saya Andreas Thedy Feriyanto.