Thursday, February 23, 2023

Untuk melakukan login menggunakan Facebook di CodeIgniter

Untuk melakukan login menggunakan Facebook di CodeIgniter, Anda dapat mengikuti langkah-langkah berikut:

  1. Buat aplikasi Facebook

Langkah pertama yang harus dilakukan adalah membuat aplikasi Facebook. Anda dapat mengikuti petunjuk di https://developers.facebook.com/docs/apps/register untuk membuat aplikasi Facebook. Setelah selesai membuat aplikasi, Anda akan mendapatkan App ID dan App Secret yang nantinya akan digunakan untuk menghubungkan aplikasi Facebook dengan aplikasi CodeIgniter.

  1. Download library Facebook SDK for PHP

Selanjutnya, Anda perlu mengunduh library Facebook SDK for PHP di https://github.com/facebook/php-graph-sdk. Setelah diunduh, ekstrak file tersebut ke dalam folder "libraries" di direktori aplikasi CodeIgniter.

  1. Buat controller

Buat controller baru dengan nama "Login.php" pada direktori "application/controllers". Di dalam controller tersebut, buatlah fungsi untuk menghubungkan aplikasi Facebook dengan aplikasi CodeIgniter, mengambil data pengguna, dan menyimpan data tersebut ke dalam database. Berikut contoh kode yang dapat Anda gunakan:

php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); require_once APPPATH . 'libraries/Facebook/autoload.php'; class Login extends CI_Controller { public function index() { $fb = new Facebook\Facebook([ 'app_id' => '{your-app-id}', 'app_secret' => '{your-app-secret}', 'default_graph_version' => 'v3.3', ]); $helper = $fb->getRedirectLoginHelper(); $permissions = ['email']; // optional $loginUrl = $helper->getLoginUrl('{your-callback-url}', $permissions); echo '<a href="' . htmlspecialchars($loginUrl) . '">Log in with Facebook!</a>'; } public function callback() { $fb = new Facebook\Facebook([ 'app_id' => '{your-app-id}', 'app_secret' => '{your-app-secret}', 'default_graph_version' => 'v3.3', ]); $helper = $fb->getRedirectLoginHelper(); try { $accessToken = $helper->getAccessToken(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } if (! isset($accessToken)) { if ($helper->getError()) { header('HTTP/1.0 401 Unauthorized'); echo "Error: " . $helper->getError() . "\n"; echo "Error Code: " . $helper->getErrorCode() . "\n"; echo "Error Reason: " . $helper->getErrorReason() . "\n"; echo "Error Description: " . $helper->getErrorDescription() . "\n"; } else { header('HTTP/1.0 400 Bad Request'); echo 'Bad request'; } exit; } // Logged in echo '<h3>Access Token</h3>'; var_dump($accessToken->getValue()); // The OAuth 2.0 client handler helps us manage access tokens $oAuth2Client = $fb->getOAuth2Client(); // Get the access token metadata from /debug_token $tokenMetadata = $oAuth2Client->debugToken($accessToken);
php
echo '<h3>Metadata</h3>'; var_dump($tokenMetadata); // Validation (these will throw FacebookSDKException's when they fail) $tokenMetadata->validateAppId('{your-app-id}'); // Replace {your-app-id} with your App ID // If you know the user ID this access token belongs to, you can validate it here //$tokenMetadata->validateUserId('123'); $tokenMetadata->validateExpiration(); if (! $accessToken->isLongLived()) { // Exchanges a short-lived access token for a long-lived one try { $accessToken = $oAuth2Client->getLongLivedAccessToken($accessToken); } catch (Facebook\Exceptions\FacebookSDKException $e) { echo "<p>Error getting long-lived access token: " . $e->getMessage() . "</p>\n\n"; exit; } echo '<h3>Long-lived</h3>'; var_dump($accessToken->getValue()); } $fb->setDefaultAccessToken($accessToken); try { $response = $fb->get('/me?fields=id,name,email'); $userNode = $response->getGraphUser(); } catch(Facebook\Exceptions\FacebookResponseException $e) { // When Graph returns an error echo 'Graph returned an error: ' . $e->getMessage(); exit; } catch(Facebook\Exceptions\FacebookSDKException $e) { // When validation fails or other local issues echo 'Facebook SDK returned an error: ' . $e->getMessage(); exit; } echo '<h3>User Details</h3>'; echo '<p>ID: ' . $userNode->getId() . '</p>'; echo '<p>Name: ' . $userNode->getName() . '</p>'; echo '<p>Email: ' . $userNode->getEmail() . '</p>'; // Simpan data pengguna ke dalam database $this->load->database(); $this->db->where('email', $userNode->getEmail()); $query = $this->db->get('users'); $user = $query->row(); if (! $user) { $data = array( 'name' => $userNode->getName(), 'email' => $userNode->getEmail(), ); $this->db->insert('users', $data); } // Redirect ke halaman dashboard redirect('dashboard'); }

}

sql
Pastikan untuk mengganti {your-app-id}, {your-app-secret}, {your-callback-url}, dan nama tabel database yang digunakan dengan informasi yang sesuai. 4. Buat view Buat view dengan nama "login.php" pada direktori "application/views". Di dalam view tersebut, tambahkan kode untuk menampilkan tombol login menggunakan Facebook. Berikut contoh kode yang dapat Anda gunakan:
<!DOCTYPE html> <html> <head> <title>Login with Facebook</title> </head> <body>
php
<h1>Login with Facebook</h1> <a href="<?php echo site_url('login'); ?>">Login with Facebook</a>
</body> </html> ```
  1. Buat database

Buat tabel dengan nama "users" pada database yang digunakan. Tabel tersebut harus memiliki kolom "id", "name", dan "email". Berikut contoh script SQL yang dapat Anda gunakan:

less
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(255) NOT NULL, `email` varchar(255) NOT NULL,
PRIMARY KEY (id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
python
6. Jalankan aplikasi Jalankan aplikasi dengan menggunakan perintah "php spark serve" pada terminal. Akses aplikasi melalui browser dengan URL "http://localhost:8080/login". 7. Login menggunakan Facebook Klik tombol "Login with Facebook" pada halaman login. Anda akan diarahkan ke halaman login Facebook. Setelah berhasil login, Anda akan diarahkan kembali ke aplikasi dan melihat halaman dashboard. Demikianlah langkah-langkah untuk melakukan login menggunakan Facebook di CodeIgniter. Semoga tutorial ini bermanfaat.
Maaf, saya salah ketik. Tidak ada kelanjutan dari langkah-langkah sebelumnya, karena langkah terakhir adalah menjalankan aplikasi dan melakukan login menggunakan Facebook. Setelah login, pengguna akan diarahkan ke halaman dashboard.

Untuk menampilkan halaman dashboard, Anda perlu membuat controller baru dengan nama "Dashboard" dan view dengan nama "dashboard.php". Pada halaman dashboard, Anda dapat menampilkan informasi pengguna yang telah berhasil login menggunakan Facebook.

Berikut contoh kode untuk controller "Dashboard":

php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Dashboard extends CI_Controller { public function index() { $this->load->library('session'); // Cek apakah pengguna sudah login if (! $this->session->userdata('user_id')) { redirect('login'); } // Ambil data pengguna dari database $this->load->database(); $this->db->where('id', $this->session->userdata('user_id')); $query = $this->db->get('users'); $user = $query->row(); // Tampilkan halaman dashboard $this->load->view('dashboard', array('user' => $user)); } }

Berikut contoh kode untuk view "dashboard.php":

html
<!DOCTYPE html> <html> <head> <title>Dashboard</title> </head> <body> <h1>Welcome, <?php echo $user->name; ?></h1> <p>Your email: <?php echo $user->email; ?></p> <a href="<?php echo site_url('logout'); ?>">Logout</a> </body> </html>

Pada halaman dashboard, Anda dapat menampilkan informasi pengguna yang telah berhasil login menggunakan Facebook. Anda juga perlu menambahkan tombol logout untuk menghapus session pengguna dan mengarahkan pengguna kembali ke halaman login.

Demikianlah cara untuk membuat login menggunakan Facebook di CodeIgniter. Semoga tutorial ini bermanfaat.

Maaf, saya salah ketik. Tidak ada kelanjutan dari langkah-langkah sebelumnya, karena langkah terakhir adalah menjalankan aplikasi dan melakukan login menggunakan Facebook. Setelah login, pengguna akan diarahkan ke halaman dashboard.

Untuk menampilkan halaman dashboard, Anda perlu membuat controller baru dengan nama "Dashboard" dan view dengan nama "dashboard.php". Pada halaman dashboard, Anda dapat menampilkan informasi pengguna yang telah berhasil login menggunakan Facebook.

Berikut contoh kode untuk controller "Dashboard":

php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Dashboard extends CI_Controller { public function index() { $this->load->library('session'); // Cek apakah pengguna sudah login if (! $this->session->userdata('user_id')) { redirect('login'); } // Ambil data pengguna dari database $this->load->database(); $this->db->where('id', $this->session->userdata('user_id')); $query = $this->db->get('users'); $user = $query->row(); // Tampilkan halaman dashboard $this->load->view('dashboard', array('user' => $user)); } }

Berikut contoh kode untuk view "dashboard.php":

html
<!DOCTYPE html> <html> <head> <title>Dashboard</title> </head> <body> <h1>Welcome, <?php echo $user->name; ?></h1> <p>Your email: <?php echo $user->email; ?></p> <a href="<?php echo site_url('logout'); ?>">Logout</a> </body> </html>

Pada halaman dashboard, Anda dapat menampilkan informasi pengguna yang telah berhasil login menggunakan Facebook. Anda juga perlu menambahkan tombol logout untuk menghapus session pengguna dan mengarahkan pengguna kembali ke halaman login.

Demikianlah cara untuk membuat login menggunakan Facebook di CodeIgniter. Semoga tutorial ini bermanfaat.

Related Posts

Untuk melakukan login menggunakan Facebook di CodeIgniter
4/ 5
Oleh

Silahkan Berkomentar bila ada yang ingin ditanyakan. Tidak ada komentar moderasi di situs ini, jadi mohon jangan SPAM, gunakan dengan bijak. Tolong Laporkan bila ada link yang rusak agar admin dapat segera memperbaikinya.