Tutorial menggunakan autentikasi facebook untuk login ke aplikasi website dengan PHP

Antefer.web.id
0 Comments

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. 

Tags

Posting Komentar

0Komentar

Posting Komentar (0)

#buttons=(Ok, Go it!) #days=(20)

Our website uses cookies to enhance your experience. Check Now
Ok, Go it!