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.

 

 

Next Post Previous Post
No Comment
Add Comment
comment url