Last Updated on October 31, 2023 by
Selamat datang kembali di seri belajar Laravel bersama Appkey! Kali ini, kita akan membahas Laravel auth 7 tutorial. Tentunya selama belajar Laravel, Anda sudah pernah mendengar istilah Laravel auth, bukan?
Atau ini pertama kalinya Anda mendengar nama Laravel auth? Tidak apa, karena artikel edisi kali ini akan membahas lengkap seputar Laravel auth 7 tutorial.
Yuk segera siapkan peralatan ngoding Anda segera supaya bisa menyimak sekaligus langsung mencoba praktek Laravel auth 7 tutorial. Selamat membaca!
Laravel Auth Adalah Salah Satu Fitur Penting Laravel
Sebelum memulai, sudahkah Anda tahu apa itu Laravel auth? Laravel adalah framework dengan banyak fitur dan elemen penting di dalamnya. Laravel auth adalah salah satunya.
Laravel auth adalah fitur esensial yang pasti ada di setiap aplikasi dan website yang dibuat memakai framework Laravel. Auth amat penting sebab memungkinkan user untuk melakukan verifikasi email, login akun, reset password dan lain sebagainya pada website maupun aplikasi.
Oleh sebab itu, Laravel auth adalah elemen penting yang harus Anda pahami dan ketahui cara membuatnya.
Ada pula yang mendefinisikan Laravel auth (authentication) sebagai elemen security/perlindungan untuk melindungi halaman-halaman dan bagian penting dari sebuah web atau aplikasi.
Dengan adanya Laravel auth, maka hanya orang-orang tertentu saja yang bisa mengakses halaman penting tersebut. Orang-orang tersebut biasanya dikenal sebagai admin dan sudah mempunyai hak authentication khusus.
Berkat fungsi utamanya tersebut, Laravel auth sering kali digunakan pada fitur-fitur administrator website atau aplikasi. Sistem authentication juga bisa diaplikasikan pada software yang mempunyai menu user (pengguna) yang bisa registrasi dan login ke akun masing-masing, semisal pada aplikasi dan website e-commerce.
Membuat fungsi auth pada Laravel ini sangat mudah, sebab framework Laravel menyediakan fitur-fitur pembuatan auth siap pakai. Anda tidak perlu lagi repot melakukan instalasi modul khusus untuk membuat auth.
Cukup akses file konfigurasi otentikasi auth.php di bagian config pada Laravel, kemudian Anda bisa melakukan coding konfigurasi untuk membuat menu auth. Untuk membuat auth di Laravel, Anda bisa memakai php artisan auth dengan kode $ php artisan make:auth.
Table of Contents
Step by Step Membuat Auth di Laravel
Tibalah kita pada tutorial step by step membuat auth di Laravel. Tutorial kali ini akan menggunakan Laravel 7, jadi pastikan bahwa perangkat PC Anda untuk ngoding sudah terinstal dengan PHP minimal versi 7.2. Selain itu, pastikan Anda sudah punya software pendukung lain yakni:
- Editor text, seperti Visual Studio Code.
- Web server pendukung, semisal Nginx, XAMPP dan seterusnya.
Juga sebelum memulai, Anda perlu ingat untuk berhati-hati dalam menjalankan project ini, sebab Laravel bisa secara otomatis membuat sejumlah file bernama sama dengan file project Anda sebelumnya. Namun Anda tidak perlu cemas, sebab jika hal ini terjadi, maka Laravel akan memberikan notifikasi berupa box ‘warning’.
Tetapi, jika Anda mengklik ‘y’ atau ‘yes’ pada warning, maka Laravel menganggap Anda setuju untuk me-replace (mengganti) project lama dengan project baru bernama sama. Alhasil, isi file akan terganti otomatis dan Anda kehilangan project lama Anda. Untuk mengatasinya, tempuh cara-cara ini:
- Anda bisa menginstalasi fitur auth ke project Laravel yang sudah ada untuk mempermudah. Biasanya pun, orang-orang melakukan cara ini untuk melengkapi software yang sedang digarap. Mula-mula, input php artisan ke sistem: $ php artisan make:auth.
- Hasilnya, Laravel membuat file layout/app.blade.php.
- Notifikasi warning muncul jika sudah ada file yang sama: The [layout/app.blade.php] view already exists. Do you want to replace it? (yes/no)
- Copy paste isi > klik ‘yes’.
- Tunggu sejenak, Anda akan mendapatkan notifikasi bahwa instalasi sudah selesai: Authentication scaffolding generated successfully.
Baik, apakah Anda sudah siap untuk menyimak cara membuat auth pada Laravel? Yuk kita mulai step by stepnya:
Cek Instalasi Composer
Kami asumsikan Anda sudah menginstal composer. Namun Anda tetap perlu untuk mengecek instalasi composer, caranya:
- Buka command line / terminal.
- Input ‘composer’ > enter.
- Apabila instalasi berhasil, Anda akan menemukan notifikasi:
C:\users\Hp>composer
COMPOSER
Composer version 1.9.2 2020-11-20 13:03:10
Instal Laravel 7
Selanjutnya, instal Laravel 7 via composer, caranya:
- Buka command line > composer.
- Input coding:
Composer create-project –prefer-dist laravel/laravel:^7.0 laravel_auth
- Cukup tunggu sampai instalasi selesai secara otomatis.
Jalankan Laravel dan Siapkan Database
Tahap ketiga pasca instalasi Laravel selesai, kini Anda bisa mencoba menjalankan Laravel. Caranya:
- Aktifkan web server > buka command line > masuk ke ‘direktori project’.
- Jalankan terminal > input coding:
cd laravel_auth // then php artisan serve - Kalau Anda memakai terminal Visual Studio Code, input coding:
D:\Disk\www\ujicoba_laravel7\laravel_auth>php artisan serve
Laravel development server started: http:///127.0.0.1:8000
- Copy link URL (http:///127.0.0.1:8000) > buka browser > input ke kolom URL > enter.
- Nantinya Anda akan melihat halaman Laravel yang sudah berjalan.
Selanjutnya disambung dengan menyiapkan database atau schema table users yang bisa Anda gunakan untuk pengolahan data. Di sini Anda bisa menerapkan pengaturan di file .env untuk mempermudah. Berikut caranya:
- Cari file user.php > migration > cari file schema yang diakhiri dengan table.php. Contohnya:
2020_11_20_000000_create_users_table.php ; 2020_11_20_000000_create_password_resets_table.php ; 2020_11_20_000000_create_failed_jobs_table.php.
- Anda tinggal menggunakan file-file tersebut sebagai database memakai tools database apa saja.
- Buka file .env > cari code: DB_DATABASE=laravel
- Ubah codingnya: DB_DATABASE=laravel7_auth
- Database sudah siap digunakan.
Siapkan Table
Di sini, kita akan melakukan migration table users yang sudah ada. Caranya:
- Matikan php artisan server > tunggu sejenak > nyalakan / jalankan kembali.
- Buka terminal > input: php artisan migrate.
- Tunggu sejenak hingga proses selesai. Jika sudah Anda akan mendapatkan notifikasi berupa: Migration table created successfully.
Buat Route untuk Login, Logout dan Register
Lanjutkan dengan membuat route untuk perintah register, login dan logout. Caranya:
- Buka direktori routes/web.php > buka file php.
- Input code:
<?phpuse Illuminate\Support\Facades\Route;Route::get('/', 'AuthController@showFormLogin')->name('login');Route::get('login', 'AuthController@showFormLogin')->name('login');Route::post('login', 'AuthController@login');Route::get('register', 'AuthController@showFormRegister')->name('register');Route::post('register', 'AuthController@register');Route::group(['middleware' => 'auth'], function () {Route::get('home', 'HomeController@index')->name('home');Route::get('logout', 'AuthController@logout')->name('logout');
}); - Jalankan coding di atas.
- Anda akan menemukan view masing-masing untuk register (form dan proses) serta login (form dan proses).
- Untuk mengakses menu logout dan home > cukup tambahkan middleware.
Buat Controller untuk Auth
Tugas Anda masih berlanjut. Kini, waktunya untuk membuat controller bagi authentication. Caranya:
- Buka terminal > input php artisan make:controller AuthController.
- Buka direktori app/Http/Controllers.
- Buka file AuthController.php. Input kode:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Validator;
use Hash;
use Session;
use App\User;
class AuthController extends Controller
{
public function showFormLogin()
{
if (Auth::check()) { // true
//Login Success
return redirect()->route('home');
}
return view('login');
}
public function login(Request $request)
{
$rules = [
'email' => 'required|email',
'password' => 'required|string'
];$messages = [
'email.required' => 'Email wajib diisi',
'email.email' => 'Email tidak valid',
'password.required' => 'Password wajib diisi',
'password.string' => 'Password harus berupa string'
];
$validator = Validator::make($request->all(), $rules, $messages);
if($validator->fails()){
return redirect()->back()->withErrors($validator)->withInput($request->all);
}
$data = [
'email' => $request->input('email'),
'password' => $request->input('password'),
];
Auth::attempt($data);
if (Auth::check()) { // true sekalian session field di users nanti bisa dipanggil via Auth
//Login Success
return redirect()->route('home');
} else { // false
//Login Fail
Session::flash('error', 'Email atau password salah');
return redirect()->route('login');
}
}
public function showFormRegister()
{
return view('register');
}
public function register(Request $request)
{
$rules = [
'name' => 'required|min:5|max:30',
'email' => 'required|email|unique:users,email',
'password' => 'required|confirmed'
];
$messages = [
'name.required' => 'Nama Lengkap wajib',
'name.min' => 'Nama lengkap minimal 5 karakter',
'name.max' => 'Nama lengkap maksimal 30 karakter',
'email.required' => 'Email wajib diisi',
'email.email' => 'Email tidak valid',
'email.unique' => 'Email sudah terdaftar',
'password.required' => 'Password wajib diisi',
'password.confirmed' => 'Password tidak sama dengan konfirmasi password'
];
$validator = Validator::make($request->all(), $rules, $messages);
if($validator->fails()){
return redirect()->back()->withErrors($validator)->withInput($request->all);
}
$user = new User;
$user->name = ucwords(strtolower($request->name));
$user->email = strtolower($request->email);
$user->password = Hash::make($request->password);
$user->email_verified_at = \Carbon\Carbon::now();
$simpan = $user->save();
if($simpan){
Session::flash('success', 'Register berhasil! Silahkan login untuk mengakses data');
return redirect()->route('login');
} else {
Session::flash('errors', ['' => 'Register gagal! Silahkan ulangi beberapa saat lagi']);
return redirect()->route('register');
}
}
public function logout()
{
Auth::logout(); // menghapus session yang aktif
return redirect()->route('login');
}
}
Anda bisa mencoba menjalankan coding yang baru dibuat.
Buat Halaman View Login dan Register
Terakhir, Anda bisa membuat halaman view login dan juga register. Untuk membuat kedua halaman view ini, Anda harus membuat file baru dan menyimpannya di direktori bagian resources/views. Anda bisa menamai file tersebut dengan login.blade.php.
Coding halaman view login adalah:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Register</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="col-md-4 offset-md-4 mt-5">
<div class="card">
<div class="card-header">
<h3 class="text-center">Form Register</h3>
</div>
<form action="{{ route('register') }}" method="post">
@csrf
<div class="card-body">
@if(session('errors'))
<div class="alert alert-danger alert-dismissible fade show" role="alert">
Something is wrong:
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
<div class="form-group">
<label for=""><strong>Nama Lengkap</strong></label>
<input type="text" name="name" class="form-control" placeholder="Nama Lengkap">
</div>
<div class="form-group">
<label for=""><strong>Email</strong></label>
<input type="text" name="email" class="form-control" placeholder="Email">
</div>
<div class="form-group">
<label for=""><strong>Password</strong></label>
<input type="password" name="password" class="form-control" placeholder="Password">
</div>
<div class="form-group">
<label for=""><strong>Konfirmasi Password</strong></label>
<input type="password" name="password_confirmation" class="form-control" placeholder="Password">
</div>
</div>
<div class="card-footer">
<button type="submit" class="btn btn-primary btn-block">Register</button>
<p class="text-center">Has an account? <a href="{{ route('login') }}">Login</a> here!</p>
</div>
</form>
</div>
</div>
</div>
</body>
</html>
Sedangkan coding untuk halaman view register adalah:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Dashboard</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css">
</head>
<body>
<div class="container">
<div class="col-md-12 mt-5">
<div class="card">
<div class="card-header">
<h3>Dashboard</h3>
</div>
<div class="card-body">
<h5>Welcome to dashboard, <strong>{{ Auth::user()->name }}</strong></h5>
<a href="{{ route('logout') }}" class="btn btn-danger">Logout</a>
</div>
</div>
</div>
</div>
</body>
</html>
Jika sudah, Anda bisa langsung mencoba pengujian (testing). Lakukan testing dengan langkah-langkah berikut:
- Buka command > input php artisan serve.
- Buka browser > input URL: http://127.0.0.1:8000 > tekan enter / klik loading.
- Anda akan bertemu dengan halaman login > register jika belum punya akun.
- Anda akan diarahkan ke laman register > lakukan registrasi.
- Anda akan tiba di halaman dashboard. Selesai!
Demikianlah pembahasan Laravel auth 7 tutorial kali ini. Semoga ilmu pada artikel edisi kali ini bermanfaat untuk menambah pengetahuan dan wawasan Anda tentang Laravel, ya.
Nantikan seri belajar Laravel lainnya dan juga artikel menarik plus informatif lain seputar dunia IT dari Appkey.id. Sampai jumpa lagi!
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.