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.
Berikut bahan2 yang di butuhkan untuk membuat CI bisa login dengan Google.
- Codeigniter 2 HMVC
- Library API Google
- Client ID dan secret ID dari API Google+
- 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
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
Post a Comment