Laravel - Authentication
Authentication
Enable Authentication Routes
Buka file routes/web.php, dan tambahkan sintak di bawah ini
Auth::routes();
Lalu jalankan sintak dibawah ini untuk mengetahui apakah
authentication sudah berfungsi
php artisan route:list
Membuat Link Untuk Register, Login dan Logout
Buka file resources/views/layouts/app.blade.php, tambahkan
code di bawah ini
Jika berhasil akan mempunyai menu seperti ini apabila belum
login
Apabila sudah login seperti ini
Enable User Registration
Buka file resources/views/auth/register.blade.php, tambahkan
sintak di bawah ini
@extends('layouts.app')
@section('title', 'Register')
@section('content')
<div class="container">
<form method="POST" action="{{ route('register') }}">
@csrf
<div class="form-group">
<label for="name"> Name </label>
<input id="name" type="text" name="name" value="{{ old('name') }}" required
class="form-control {{ $errors->has('name') ? 'is-invalid' : '' }}">
</div>
@if ($errors->has('name'))
<span class="invalid-feedback">
<strong> {{ $errors->first('name') }} </strong>
</span>
@endif
<div class="form-group">
<label for="email"> Email </label>
<input id="email" type="email" name="email" value="{{ old('email') }}" required
class="form-control {{ $errors->has('email') ? 'is-invalid' : '' }}">
</div>
@if ($errors->has('email'))
<span class="invalid-feedback">
<strong> {{ $errors->first('email') }} </strong>
</span>
@endif
<div class="form-group">
<label for="password"> Password </label>
<input id="password" type="password" name="password" required
class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}">
</div>
@if ($errors->has('password'))
<span class="invalid-feedback">
<strong> {{ $errors->first('password') }} </strong>
</span>
@endif
<div class="form-group">
<label for="password_confirmation"> Password Confirmation</label>
<input id="password_confirmation" type="password" name="password_confirmation" required
class="form-control">
</div>
<button type="submit" class="btn btn-primary"> Register </button>
</form>
</div>
@endsection
Lalu kita coba buka browser dan masuk ke endpoint /register,
dan coba mendaftar. Apabila berhasil nanti akan me redirect ke halaman route
name home , dan kalau gagal seperti dibawah ini
Enable User Login
Sekarang ketika sudah login dan mengunjungi endoint /login,
maka akan di redirect ke halaman /home, yang mana halaman tersebut tidak ada. Untuk
itu untuk sementara saya membuat endpoint /home yang isinya sama seperti
endpoint root atau /, okay lanjut Sekarang kita perlu membuat views untuk
halaman /login. Buat file resources/views/auth/login.blade.php
@extends('layouts.app')
@section('title', 'Login')
@section('content')
<div class="container">
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="form-group">
<label for="email"> Email </label>
<input id="email" type="email" name="email" value="{{ old('email') }}" required
class="form-control {{ $errors->has('email') ? 'is-invalid' : '' }}">
</div>
@error('email')
<div class="alert alert-danger"> {{ $message }}</div>
@enderror
<div class="form-group">
<label for="password"> Password </label>
<input id="password" type="password" name="password" required
class="form-control {{ $errors->has('password') ? 'is-invalid' : '' }}">
</div>
@error('password')
<div class="alert alert-danger"> {{ $message }}</div>
@enderror
<div class="form-group">
<div class="form-check">
<input id="remember" type="checkbox" name="remember" value="{{ old('remember') ? 'cheked' : ''}}"
class="form-check-input">
<label for="remember"> Remember me </label>
</div>
</div>
<button type="submit" class="btn btn-primary btn-block"> Login </button>
</form>
</div>
@endsection
Lalu coba login dan juga coba dengan data yang salah ,
apabila memasukan data yang salah akan muncul tampilan seperti dibawah
Mendapatkan Current User Login
Buka file app/Http/Controllers/HomeController.php, tambahkan
code dibawah ini
Buka file resources/views/home/index.blade.php, tambahkan
code dibawah ini
@extends('layouts.app')
@section('title', 'Home')
@section('content')
@if (isset($currentUser))
<h1> Welcome {{ $currentUser->name }} </h1>
@else
<h1> Welcome </h1>
@endif
<p>This is my Index content.</p>
@endsection
Lalu bukan halaman home
Apabila sudah login akan seperti ini
Melindungi halaman dari user yang belum login
Sekarang kita akan melindungi aksi Create, Update dan Delete
pada BlogPost. Yang bisa melakukan aksi tersebut adalah user yang sudah login, Buka
file app/Http/Controllers/PostsController.php, tambahkan code dibawah ini.
Sekarang buka halaman http://localhost:8000/posts/create,
kalau belum login akan di redirect ke halaman login.