Search

Membuat sistem Login dan pendaftaran website menggunakan akun facebook bag.(II)

bahasan ini adalah bahasan ke dua dari yang sebelumnya

Membuat sistem Login dan pendaftaran website menggunakan akun facebook 

pada tahab ke dua ini  kita akan membahas per file tentang bagaimana cara php meminta data dari facebook dan bagaimana cara php menyimpannya ke database pribadi kita sehingga kita dapat menggunakanya sesuai kebutuhan  pertama-tama buka file Index.php dan perhatikan pada bagian


 <h4>Hello sobat!</h4>
              </div>

              <a href="https://www.facebook.com/dialog/oauth?client_id=1236xxxxxxxxxxx&redirect_uri=http://www.namasitusmu.com/pendaftaranfb/facebook_auth.php&scope=publish_stream" title="Signup with facebook">
                <button class="btn btn-primary">Signup with facebook</button>
              </a>
code diatas merupakan script HTML membuat link biasa biasa  yang di padukan dengan css sehingga menampilkan tombol  yang apabila di klik akan memasuki alamat facebook konfirmasi berupa perizinan akses untuk di setujui oleh pengguna,  pada halaman facebook, facebook akan melakukan fungsi get (mengambil) app id untuk mencocokkan aplikasi dan mengembalikan ke halaman redirect_uri=http://www.namasitusmu.com/pendaftaranfb/facebook_auth.php setelah semua proses selesai

 pada halaman facebook_auth.php kita juga mengunakan fungsi get untuk mendapatkan data-data yang dikirim oleh facebook 
berikut isi pada halaman facebook_auth.php
<?php
session_start();
include ("connect.php");

$code = $_GET['code'];


if(empty($code)) {
    $_SESSION['state'] = md5(uniqid(rand(), TRUE)); //CSRF protection
    $dialog_url = "https://www.facebook.com/dialog/oauth?client_id="
    . $app_id . "&redirect_uri=" . urlencode($my_url) . "&state="
    . $_SESSION['state'];

    echo("<script> top.location.href='" . $dialog_url . "'</script>");
}

if($_REQUEST['state'] == $_SESSION['state']) {
    $token_url = "https://graph.facebook.com/oauth/access_token?"
    . "client_id=" . $app_id . "&redirect_uri=" . urlencode($my_url)
    . "&client_secret=" . $app_secret . "&code=" . $code . "&scope=publish_stream";

    $response = @file_get_contents($token_url);
    $params = null;
    parse_str($response, $params);

    $graph_url = "https://graph.facebook.com/me?access_token="
    . $params['access_token'];

    $user = json_decode(file_get_contents($graph_url));
    
    $username = $user->username;
    $email = $user->email;
    $facebook_id = $user->id;
  
    // check if user in db => login
    $result = mysql_query("select * from `daftarfb` where `facebook_id`='$facebook_id'");
    if (mysql_num_rows($result) == 1)
    {
        $usr = mysql_fetch_array($result);
        $_SESSION['username'] = $usr['username'];
        $_SESSION['uid'] = $usr['id'];
        $_SESSION['facebook_id'] = $_usr['facebook_id'];
        $_SESSION['access_token'] = $params['access_token'];
        
        ?>
        <script>
            top.location.href='home.php'
        </script>
        <?php
    }
    else // if user not in db
    {
        $join_date  = date('Y-m-d h:i:s');
        $query = mysql_query("INSERT INTO `daftarfb` (username, email, facebook_id, join_date)
                                        VALUES ('$username', '$email', '$facebook_id', '$join_date')");  
        
        $_SESSION['uid'] = mysql_insert_id();
        $_SESSION['username'] = $username;
        $_SESSION['access_token'] = $params['access_token'];
        $_SESSION['facebook_id'] = $_usr['facebook_id'];
    
        ?>
        <script>
            top.location.href='welcome.php'
        </script>
        <?php
    }
}
else {
    echo("The state does not match. You may be a victim of CSRF.");
}

 ?>
  1. (merah) pada bagian ini, proses penandaan terjadi
    $app_id = "123611xxxx59948";
    $app_secret = "5e07e5b1875695xxxxx04bbe520b25b";
    $my_url = "http://i.carahipnotis.net/pendaftaranfb/facebook_auth.php";
    juga proses penangkapan data yang di berikan facebook
    $code = $_GET['code']; 
         
      
  2.  (hijau)  untuk pengambilan data-data dari facebook di perlukan akses token akses token itu sendiri sudah dikirmkan kodenya oleh facebook dan  akan kit gunakan untuk meminta  data seperti                   $username = $user->username;    $email = $user->email;
        $facebook_id = $user->id;    
  3.  (biru) nah saat terjadi pengembalian halaman dari facebook, facebook akan mengirim data-data seperti id si pengguna, dengan fungsi ini si pengguna akan di chek kembali keberadaannya apakah sudah pernah login atau belum bila saat di chek user id si pengguna belum pernah terdaftar maka terjadi penyimpanan data ke database
     $join_date  = date('Y-m-d h:i:s');        $query = mysql_query("INSERT INTO `daftarfb` (username, email, facebook_id, join_date)
                                            VALUES ('$username', '$email', '$facebook_id', '$join_date')");  
    dan pembuatan session 
      $_SESSION['uid'] = mysql_insert_id();
            $_SESSION['username'] = $username;
            $_SESSION['access_token'] = $params['access_token'];
            $_SESSION['facebook_id'] = $_usr['facebook_id'];
    baru pengguna di arahkan ke halaman welcome.php 
     <script>
                top.location.href='welcome.php'
            </script>
            <?php
     nnnn
  4. (biru) pada warna biru hanya mengechek id nya saja dan tinggal membuat sesion pada setiap data yang di perlukan
    pada kondisi ini si pengguna akan langsung diarahkan ke home.phh



No comments: