Membuat Authentication pada Laravel 7

Tobi Ahmad
dotlocal
Published in
4 min readMay 2, 2020
Membuat Auth pada Laravel 7 — Login, Register, Verifikasi Email, dan Reset Password

Pada framework Laravel 7 kita bisa implementasi Auth, seperti membuat fitur login, registrasi yang sudah disediakan oleh Laravel.

Laravel 7 menyediakan package composer untuk membuat auth, fitur ini tidak default dari framework, kita bisa mengingtall package laravel/ui.

Dengan menggunakan package laravel/ui kita bisa membuat tampilan auth yang sudah disediakan oleh package ini. Berikut beberapa langkah dalam membuat auth pada framework Laravel 7:

Sebelumnya kita sudah menginstall framework Laravel, bisa baca tutorialnya ditautan berikut :

Step 1 — Install package laravel/ui

Jalankan perintah composer berikut pada terminal:

composer require laravel/ui

Setelah selesai install, kita bisa lihat informasi dari perintah ui dengan menjalankan perintah berikut pada terminal:

php artisan ui --help
Membuat Auth pada Laravel 7 — Login, Register, Verifikasi Email, dan Reset Password

Step 2 — Membuat View Auth

Package laravel/ui akan membuat view yang digunakan untuk auth pada folder resources/views/auth, dan membuat base layout pada folder resources/views/layouts. Ada 3 preset type yang bisa kita gunakan, seperti bootstrap, vue, dan react.

Menggunakan Bootstrap

Untuk membuat view auth dengan bootstrap jalankan perintah ini pada terminal:

php artisan ui bootstrap --auth
membuat login multi user dengan laravel

Menggunakan Vue

Untuk membuat view auth dengan vue jalankan perintah ini pada terminal:

php artisan ui vue --auth

Menggunakan React

Untuk membuat view auth dengan vue jalankan perintah ini pada terminal:

php artisan ui react --auth

Install NPM

Setelah memilih type preset ui yang digunakan, kita perlu menginstall NPM untuk generate view dan assets yang dibutuhkan pada auth:

npm install

Run NPM

npm run dev
membuat custom login laravel

Setelah run npm selesai maka akan terdapat beberapa penambahan file seperti:

Controller

Controller yang menggunakan middleware auth ialah HomeController, jika kita ingin mengakses view index saat tidak login maka akan diredirect ke halaman login.

<?phpnamespace App\Http\Controllers;use Illuminate\Http\Request;class HomeController extends Controller
{

/**
* Create a new controller instance.
*
* @return void
*/

public function __construct()
{
$this->middleware(‘auth’);
}
/**
* Show the application dashboard.
*
* @return \Illuminate\Contracts\Support\Renderable
*/

public function index()
{
return view(‘home’);
}
}

View

Beberapa file template blade auth yang ada pada folder resources/views/auth dan base layout pada folder resources/views/layouts.

Route

Pada file routes/web.php terdapat penambahan baris kode:

Auth::routes();Route::get(‘/home’, ‘HomeController@index’)->name(‘home’);

Untuk melihat daftar route bisa menggunakan perintah artisan berikut pada terminal

php artisan route:list
laravel login with username

Pada gambar diatas terdapat semua daftar route pada aplikasi kita, sedangkan route khusus untuk auth, terdapat pada gambar dibawah ini:

membuat login di laravel 7, laravel 7, laravel 8

Step 3— Run Migrations

Sesuaikan konfigurasi database pada file .env

// edit file .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=latihan_blog
DB_USERNAME=root
DB_PASSWORD=password

Pada saat instalasi Laravel, kita sudah disediakan file migrations untuk table users:

// buka file 2014_10_12_000000_create_users_table.php
<?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('name');
$table->string('email')->unique();
$table->timestamp('email_verified_at')->nullable();
$table->string('password');
$table->rememberToken();
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('users');
}
}

Kemudian jalankan migration dengan perintah artisan berikut pada terminal:

php artisan migrate

Step 4— Buat Dummy Users dengan Seeder

Buat seeder untuk dummy data users dengan menggunakan perintah artisan make:seeder

php artisan make:seeder UsersTableSeeder
// Seeder created successfully.

Perintah artisan di atas membuat file baru di database/seeds/UsersTableSeeder.php

// edit file database/seeds/UsersTableSeeder.php<?php
use Illuminate\Database\Seeder;
class UsersTableSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
for($i=0;$i<15;$i++){
$data[$i] = [
'name' => $faker->name,
'email' => $faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => bcrypt('password'),
'remember_token' => Str::random(10),
'role' => $input[$rand_keys],
];
}

DB::table(‘users’)->insert($data);
}
}

Running seeder dengan perintah berikut pada terminal:

php artisan db:seed
// Database seeding completed successfully.
// atau dengan spesific class seeder
php artisan db:seed --class=UsersTableSeeder

Step 5— Buka route pada browser

Jalankan perintah php artisan serve pada terminal, dan akses route auth pada browser.

Login

Halaman login pada Laravel

Registration

Halaman register pada Laravel

Reset Password

Halaman Reset Password pada Laravel

Home

Halaman Home pada Laravel

Next Chapter

Support the Author

Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)

--

--

Tobi Ahmad
dotlocal

Web Developer, Blogger, & Open source enthusiast.