Skip to main content

Login dengan akun Google di Codeigniter (CI) part 2

Berikutnya kita akan menggunakan CI versi 2, kenapa saya masih menggunakan versi 2. karena saya menggunakan ubuntu server sebagai server saya. kalau yg pakai windows bisa menggunakan CI 3. yang saya gunakanpun CI 2 yg sudah HMVC, karena lebih mudah jika akan di adakan pengembangan lebih lanjut.

Berikut bahan2 yang di butuhkan untuk membuat CI bisa login dengan Google.

  1. Codeigniter 2 HMVC
  2. Library API Google
  3. Client ID dan secret ID dari API Google+
  4. Webserver (untuk tutorial ini saya menggunakan XAMPP di windows 8)
Jika sudah tersedia semua. pastikan ada makanan ringan dan kopi untuk menemani kita membuat koding. hehe..

pertama kita membuat file controller beri nama auth_login.php dan berikut scriptnya

<?php defined('BASEPATH') OR exit('No direct script access allowed');

class Auth_login extends CI_Controller

{

    function __construct() {

  parent::__construct();

  // Load user model disini

  $this->load->model('m_user');

    }

   

    public function index(){  

  // Include libraries google api php

  include_once APPPATH."libraries/google-api-php-client/Google_Client.php";

  include_once APPPATH."libraries/google-api-php-client/contrib/Google_Oauth2Service.php";

  

  // Disini di inputkan Google Project API Credentials

  $clientId = 'Masukan Google Client ID'; //client id ditulis disini

        $clientSecret = 'Masukan Google Client secret'; //client secret ditulis disini

        $redirectUrl = base_url() . 'a/';

  

  // Konfigurasi Google Client

        $gClient = new Google_Client();

        $gClient->setApplicationName('Login ke Aplikasi');

        $gClient->setClientId($clientId);

        $gClient->setClientSecret($clientSecret);

        $gClient->setRedirectUri($redirectUrl);

        $google_oauthV2 = new Google_Oauth2Service($gClient);



        if (isset($_REQUEST['code'])) {

            $gClient->authenticate();

            $this->session->set_userdata('token', $gClient->getAccessToken());

            redirect($redirectUrl);

        }



        $token = $this->session->userdata('token');

        if (!empty($token)) {

            $gClient->setAccessToken($token);

        }



        if ($gClient->getAccessToken()) {

            $userProfile = $google_oauthV2->userinfo->get();

            // database di masukan disini

   $userData['oauth_provider'] = 'google';

   $userData['oauth_uid'] = $userProfile['id'];

            $userData['first_name'] = $userProfile['given_name'];

            $userData['last_name'] = $userProfile['family_name'];

            $userData['email'] = $userProfile['email'];

   $userData['gender'] = $userProfile['gender'];

   $userData['locale'] = $userProfile['locale'];

            $userData['profile_url'] = $userProfile['link'];

            $userData['picture_url'] = $userProfile['picture'];

   // Insert atau update user data

            $userID = $this->user->checkUser($userData);

            if(!empty($userID)){

                $data['userData'] = $userData;

                $this->session->set_userdata('userData',$userData);

            } else {

               $data['userData'] = array();

            }

        } else {

            $data['authUrl'] = $gClient->createAuthUrl();

        }

  $this->load->view('auth_login/index',$data);

    }

 //untuk logout

 public function logout() {

  $this->session->unset_userdata('token');

  $this->session->unset_userdata('userData');

        $this->session->sess_destroy();

  redirect('/auth_login');

    }
}






Comments

Popular posts from this blog

Koneksi CI (Codeigniter) dengan Postgresql

Hai, Ketika kita belajar PHP atau CI, mayoritas kita akan di kenalkan dengan mysql sebagai databasenya. kali ini saya akan berbagai pengetahuan saya yang secuil ini. untuk menyambungkan codeigniter dengan postgresql. buka file database.php di folder application/config/ $db['default']['hostname'] = 'localhost'; $db['default']['username'] = 'postgres'; //User anda di Postgresql $db['default']['password'] = ''; //password anda di Postgresql $db['default']['database'] = 'datane'; //database postgresql $db['default']['dbdriver'] = 'postgre'; //db driver di ubah $db['default']['dbprefix'] = ''; $db['default']['pconnect'] = TRUE; $db['default']['db_debug'] = TRUE; $db['default']['cache_on'] = FALSE; $db['default']['cachedir'] = ''; $db['default']['char_set'

Konfigurasi XAMPP dengan Postgresql (Cara menyambungkan XAMPP dengan postgresql)

Berlaku di windows, jika kita menginstall XAMPP secara default maka database yang tersambung adalah Mysql, bagaimana jika kita membuat system yang menggunakan database postgresql tetapi kita tetap menggunakan xampp. padahal sudah di install database postgre tapi tetep tidak nyambung, maka setiingan koneksi di php.ini harus rubah  supaya bisa terkoneksi ke postgresql. Cari File php.in di folder xampp, biasanya jika secara default installan xampp di windows maka, php.ini berada di C:\xampp\php\php.ini atau buka folder xampp dan cari php.ini dengan fitur pencarian. buka dengan editor kesayangan anda. disini saya menggunakan notepad++ cari ;extension=php_pdo_pgsql.dll dan ;extension=php_pgsql.dll hapus extension=php_pdo.dll ;extension=php_pdo_dblib.dll ;extension=php_pdo_firebird_firebird.dll ;extension=php_pdo_firebird_interbase.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql_mysqlnd.dll extension=php_pdo_mysql_libmysql.dll extension=php_pdo_odbc.dll ;extension=

Menghilangkan index.php di url codeigniter dengan httacces

Default dari url browser CI adalah www.webkita.com/index.php/welcome supaya bisa lebih enak di lihat mendjadi www.webkita.com/welcome maka kita perlu file httaacess buat file httaccess dengan notepad tanpa extensi apapun, isinya adalah sebagai berikut # request to index.php RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php/$1 [L] RewriteCond %{HTTP_USER_AGENT} ^.*(Baiduspider|HTTrack|Yandex).*$ [NC] RewriteRule .* - [F,L] simpan file tersebut, kemudian edit file config.php di application/config/config.php ubah baris $config['index_page'] = 'index.php'; menjadi $config['index_page'] = ''; kemudian edit file autoload.php di application/config/autoload.php ubah baris  $autoload['helper'] = array('');  menjadi $autoload['helper'] = array('url'); coba akses CI tanpa index.php maka web anda sudah bisa di akses, dan bisa di optima