Membuat Authentication pada Laravel 7
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
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
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
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
Pada gambar diatas terdapat semua daftar route pada aplikasi kita, sedangkan route khusus untuk auth, terdapat pada gambar dibawah ini:
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
<?phpuse 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
Registration
Reset Password
Home
Next Chapter
Support the Author
Jika suka dengan artikel ini, bisa support saya ditautan berikut ini https://karyakarsa.com/tobidsn :)