Cara Membuat API Login dan Regitrasi Menggunakan PHP

Posted on

Cara Membuat API Login dan Regitrasi Menggunakan PHP – Halo teman-teman dev. Di kesempatan nulis artikel kali ini saya ingin membuat sebuah API sederhana yang terkoneksi dengan server lokal atau biasa kita sebut localhost. API itu apa sih ? API ini berupa singkatan dari Application Programming Interface, Kegunaannya apa ? Kegunaannya API ini jika dalam kasus develop aplikasi android adalah sebagai penghubung antara android dan server. API ini berada di tengah-tengah antara android dan server, Yang dimana android mengirim ke API lalu API akan meneruskan ke server. Jadi kurang lebih seperti itu pemahaman mengenai API yang saya tau. Nah sekarang kita akan membuat sebuah API yang berfungsi untuk user login dan juga user bisa men-registrasi. Yuk disimak Cara Membuat API Login dan Regitrasi Menggunakan PHP.

Cara Membuat API Login dan Regitrasi Menggunakan PHP farizdotid

Pertama,

Download terlebih dahulu xampp. Jika agan sudah punya silahkan skip step pertama ini.

Download xampp

Kedua,

Buatlah database dengan nama terserah agan. Contoh disini dengan nama database db_mahasiswa.

Ketiga,

Buatlah tabel dengan nama terserah agan. Contoh disini dengan nama tbl_user dan berisi field-field id, unique_id, nama, email, encrypted_password, salt. Agan bisa mengcopy – paste code sql berikut ini :

 

Keempat,

Buat folder dengan nama terserah agan di dalam folder htdocs. Contoh disini saya membuat folder dengan nama mahasiswa.

Kelima,

Didalam folder mahasiswa tersebut buat folder kembali yang bernama include. Isi folder include disini ialah untuk mengisi file-file helper saja. Jadi kurang lebih menjadi direktori seperti ini :

-htdocs

–mahasiswa

—include

Keenam,

Didalam folder include buatlah file dengan nama Config.php . Kelas ini berisi variabel-variabel informasi server kita.

 

Ketujuh,

Didalam folder include buatlah filde dengan nama DB_Connect.php . Kelas ini berfungsi untuk menghubungkan kita ke server.

 

Kedelapan,

Didalam folder include buatlah file dengan nama DB_Function.php . Kelas ini berfungsi untuk menyimpan suatu fungsi yang didalam fungsi tersebut akan mengirim data ke server.

 

Kesembilan,

Didalam folder mahasiswa buatlah filde dengan nama login.php . Kelas ini berfungsi untuk login dengan parameternya email dan password.

 

Kesepuluh,

Didalam folder mahasiswa buatlah file dengan nama register.php . Kelas ini berfungsi untuk menerima data dari Android yang lalu diteruskan menyimpan data ke server.

 

Kesebelas,

Silahkan coba terlebih dahulu API Login dan Registrasi tersebut di Aplikasi POSTMAN dengan method POST. Jika agan belum punya Aplikasi Postman agan bisa mendownloadnya disini ( download postman ).

API Login : http://localhost/mahasiswa/login.php

API Register : http://localhost/mahasiswa/register.php

Respon API Login :

Login berhasil

Login gagal

 

Respon API Register :

Register berhasil

 

Register Gagal ( email sudah ada di database )

 

Keduabelas,

Selesai dan API Login dan Register tersebut sudah bisa digunakan. Agan bisa men-download project tersebut disini :

[sociallocker]

Download Project API Mahasiswa

[/sociallocker]

Sekian artikel API mengenai Cara Membuat API Login dan Regitrasi Menggunakan PHP. Semoga berguna dan bermanfaat. Seperti biasa jika ada yang ingin ditanyakan bisa berkomentar dibawah ataupun PM ke salah satu media sosial saya.

Hatur nuhun! 🙂

Sumber Referensi :

http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/

Gravatar Image
Seorang manusia biasa yang mempunyai fokus ke bidang pemrograman android dan ngeblog mengenai teknologi.

12 thoughts on “Cara Membuat API Login dan Regitrasi Menggunakan PHP

  1. gan saya sudah ikuti sampai tahap ke sebelas.. namun saat di coba
    http://localhost/mahasiswa/login.php
    http://localhost/mahasiswa/register.php

    respon nya error seperti ini:
    untuk yang login.php

    Warning: require_once(include/DB_Functions.php): failed to open stream: No such file or directory in D:\xampp\htdocs\bantosan\login.php on line 2

    Fatal error: require_once(): Failed opening required ‘include/DB_Functions.php’ (include_path=’.;D:\xampp\php\PEAR’) in D:\xampp\htdocs\bantosan\login.php on line 2

    untuk yang register.php

    Warning: require_once(include/DB_Functions.php): failed to open stream: No such file or directory in D:\xampp\htdocs\bantosan\register.php on line 3

    Fatal error: require_once(): Failed opening required ‘include/DB_Functions.php’ (include_path=’.;D:\xampp\php\PEAR’) in D:\xampp\htdocs\bantosan\register.php on line 3

  2. GAn.. saya nyoba kok error nya gini ya..

    Warning: require_once(mobile/DB_Connect.php): failed to open stream: No such file or directory in
    C:\xampp\htdocs\aplikasipmbuin\mobile\DB_Functions.php on line
    9

    Fatal error: require_once(): Failed opening required ‘mobile/DB_Connect.php’ (include_path=’C:\xampp\php\PEAR’) in
    C:\xampp\htdocs\aplikasipmbuin\mobile\DB_Functions.php on line
    9

  3. Gan saya kok error yaa, errornya gini

    Warning: require_once(include/DB_Functions.php): failed to open stream: No such file or directory in C:\xampp\htdocs\PKost\login.php on line 2

    Fatal error: require_once(): Failed opening required ‘include/DB_Functions.php’ (include_path=’C:\xampp\php\PEAR’) in C:\xampp\htdocs\PKost\login.php on line 2

    dan DB_Function.php nya gini gan

    conn = $db->connect();
    }

    // destructor
    function __destruct() {

    }

    public function simpanUser($nama, $email, $password) {
    $uuid = uniqid(”, true);
    $hash = $this->hashSSHA($password);
    $encrypted_password = $hash[“encrypted”]; // encrypted password
    $salt = $hash[“salt”]; // salt

    $stmt = $this->conn->prepare(“INSERT INTO tbl_user(unique_id, nama, email, encrypted_password, salt) VALUES(?, ?, ?, ?, ?)”);
    $stmt->bind_param(“sssss”, $uuid, $nama, $email, $encrypted_password, $salt);
    $result = $stmt->execute();
    $stmt->close();

    // cek jika sudah sukses
    if ($result) {
    $stmt = $this->conn->prepare(“SELECT * FROM tbl_user WHERE email = ?”);
    $stmt->bind_param(“s”, $email);
    $stmt->execute();
    $user = $stmt->get_result()->fetch_assoc();
    $stmt->close();

    return $user;
    } else {
    return false;
    }
    }

    /**
    * Get user berdasarkan email dan password
    */
    public function getUserByEmailAndPassword($email, $password) {

    $stmt = $this->conn->prepare(“SELECT * FROM tbl_user WHERE email = ?”);

    $stmt->bind_param(“s”, $email);

    if ($stmt->execute()) {
    $user = $stmt->get_result()->fetch_assoc();
    $stmt->close();

    // verifikasi password user
    $salt = $user[‘salt’];
    $encrypted_password = $user[‘encrypted_password’];
    $hash = $this->checkhashSSHA($salt, $password);
    // cek password jika sesuai
    if ($encrypted_password == $hash) {
    // autentikasi user berhasil
    return $user;
    }
    } else {
    return NULL;
    }
    }

    /**
    * Cek User ada atau tidak
    */
    public function isUserExisted($email) {
    $stmt = $this->conn->prepare(“SELECT email from tbl_user WHERE email = ?”);

    $stmt->bind_param(“s”, $email);

    $stmt->execute();

    $stmt->store_result();

    if ($stmt->num_rows > 0) {
    // user telah ada
    $stmt->close();
    return true;
    } else {
    // user belum ada
    $stmt->close();
    return false;
    }
    }

    /**
    * Encrypting password
    * @param password
    * returns salt and encrypted password
    */
    public function hashSSHA($password) {

    $salt = sha1(rand());
    $salt = substr($salt, 0, 10);
    $encrypted = base64_encode(sha1($password . $salt, true) . $salt);
    $hash = array(“salt” => $salt, “encrypted” => $encrypted);
    return $hash;
    }

    /**
    * Decrypting password
    * @param salt, password
    * returns hash string
    */
    public function checkhashSSHA($salt, $password) {

    $hash = base64_encode(sha1($password . $salt, true) . $salt);

    return $hash;
    }

    }

    ?>

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.