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 da...

cover 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

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

Dan berhasil …

avatar nel09
@nel09

0 Kontribusi 0 Poin

Diperbarui 3 tahun yang lalu

Bagian dari artikel seri

Belum ada Jawaban. Jadi yang pertama Jawaban

Login untuk ikut Jawaban