Migration Data User dan Membuat API Register

Gimana nih ? masih pada semangat gak belajar nya ? harus semangat ya. Kita akan coba untuk membuat API register dan login dan kita akan melindungi API lain nya agar hanya bisa di akses ketika user sudah login.


Oke, mari kita mulai dengan membuat migration user


php artisan make:migration create_users_table


Pada file migration yang sudah dibuat sebelumnya kita akan menambahkan field email, password dan token, yang nantinya akan digunakan oleh users untuk dapat login.


Silahkan tambahkan kode berikut pada file migration users yang sudah kita buat sebelumnya


<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateUsersTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('users', function (Blueprint $table) {
            $table->id();
            $table->string('email');
            $table->string('password');
            $table->string('token')->nullable();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}


Selanjutnya mari kita jalankan migration nya dengan menggunakan command dibawah ini


php artisan migrate


Dan kita lihat pada phpmyadmin tabel users sudah berhasil dibuat


1*MXXLun9tu-L8FcJTo5D_PA.png


Loh kok ada field token sih ? buat apa sih itu, kan udah ada username dan password. Jadi gini teman-teman field token di sini akan menyimpan token yang akan digunakan untuk proses autentikasi dimana ketika token nya valid maka user dapat mengakses API yang sudah kita buat sebelumnya


Selanjutnya mari kita update kode yang ada pada model user yang terdapat di file User.php


<?php

namespace App;

use Illuminate\Auth\Authenticatable;
use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract;
use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract;
use Illuminate\Database\Eloquent\Model;
use Laravel\Lumen\Auth\Authorizable;

class User extends Model implements AuthenticatableContract, AuthorizableContract
{
    use Authenticatable, Authorizable;

    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [
        'email', 'password', 'token'
    ];

    /**
     * The attributes excluded from the model's JSON form.
     *
     * @var array
     */
    protected $hidden = [
        'password',
    ];
}


Selanjutnya mari kita buat satu lagi controller yaitu UserController, kita harus membuat nya secara manual ya teman-teman


Silahkan update kode program pada file UserController.php yang sudah kita buat menjadi seperti dibawah ini, kita akan menambahkan method register


  public function register(Request $request)
    {
        $this->validate($request,[
            'email' => 'required|unique:users|email',
            'password' => 'required|min:5'
        ]);

        $email = $request->input('email');
        $password = $request->input('password');
        $hashPassword = Hash::make($password);

        $user = User::create([
            'email' => $email,
            'password' => $hashPassword
        ]);

        return response()->json(['message' => 'Proses Registrasi Berhasil', 'code' => 201]);
    }


Ohh iya, untuk response code teman-teman bisa lihat lebih lanjut pada link berikut https://developer.mozilla.org/en-US/docs/Web/HTTP/Status


Selanjutnya mari kita buat route nya pada file web.php


$router->post('/register', 'UserController@register');


Mari kita coba API register yang sudah kita buat pada POSTMAN


1*fqjESKzm-5DkZGh3M-qqDA.png


Dan berhasil …



avatar nel09

Ditulis oleh @nel09

"Berbagi ilmu dan hal menarik lainnya kepada orang banyak, agar menjadi manfaat"