MASIGNASUKAv102
4922683097822459718

Membuat Fitur Auth Login dengan Laravel 6/7 - 100% Work

Membuat Fitur Auth Login dengan Laravel 6/7 - 100% Work
Add Comments
4/03/2021

Halo kawan-kawan, pada tutorial kali ini, saya akan membagikan sebuah tutorial tentang Cara Membuat Fitur Auth Login dengan Laravel 6/7. Dalam tutorial kali ini kalian bisa memilih username atau email dalam otentikasi auth login. Mudah untuk kita membuat auth login dengan username atau alamat email di Laravel 6/7.

Namun kesempatan kali ini saya akan memberikan kalian bagaimana untuk membuat login dengan email. Jadi mari kita langsung saja ke tutorialnya.

Langkah 1 : Install Laravel 6/7

Silahkan teman-teman install dulu aplikasi Laravel 6 versi baru menggunakan perintah dibawah ini. Silahkan buka terminal atau CMD kalian untuk jalankan perintah dibawah ini :

composer create-project --prefer-dist laravel/laravel blog "6.*"

Langkah 2 : Install Laravel UI

Jika  teman-teman sudah menginstall laravel 6. Silahkan jalankan perintah di bawah ini lagi untuk menginstall paket laravel UI :

composer require laravel/ui ^1.0

Langkah 3 : Generate Auth Scaffold

Kemudian disini, kita butuhkan kerangka auth, kita bisa membuatnya dengan menggunakan perintah UI laravel seperti dibawah ini :

php artisan ui bootstrap --auth
Sekarang kita perlu untuk menjalankan perintah npm, Jika tidak, maka kita tidak dapat melihat tata letak halaman login dan register.

Install NPM

npm install

Jalankan NPM

npm run dev

Langkah 4 : Tambahkan kolom admin untuk membedahkan Admin & User

Silahkan pergi ke database\migrations lalu pilih file create_users_table. Setelah itu kalian bisa menambahkan $table->boolean('admin')->nullable(); atau copy script dibawah ini langsung.

<?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->bigIncrements('id');
            $table->string('name');
            $table->string('email')->unique();
            $table->boolean('admin')->nullable(); //Tambahkan colom ini untuk membedakan admin & user biasa
            $table->timestamp('email_verified_at')->nullable();
            $table->string('password');
            $table->rememberToken();
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('users');
    }
}
Sekarang kalian jalankan perintah dibawah ini :

php artisan migrate
Penting!!! Jangan lupa untuk tambahkan Database lalu ganti nama database di file .env sesuai dengan Database kalian.
Jika sudah maka akan mucul Table user di Database kalian dengan kolom sesuai dengan yang sudah dibuat melalui migrations.

Langkah 5 : Custom LoginController

Sekarang kita harus merubah sedikit LoginController default punya laravel 6 ini. Silahkan teman-teman pergi ke : 

app/Http/Controllers/Auth/LoginController.php

Kemudian silahkan kalian rubah seperti script dibawah ini atau langsung copy dan paste saja ke LoginController kalian.

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Http\Request;


class LoginController extends Controller
{
    /*
    |--------------------------------------------------------------------------
    | Login Controller
    |--------------------------------------------------------------------------
    |
    | This controller handles authenticating users for the application and
    | redirecting them to your home screen. The controller uses a trait
    | to conveniently provide its functionality to your applications.
    |
    */

    use AuthenticatesUsers;

    /**
     * Where to redirect users after login.
     *
     * @var string
     */
    protected $redirectTo = '/dashboard';

    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('guest')->except('logout');
    }

    public function login(Request $request)
    {   
        $input = $request->all();
   
        $this->validate($request, [
            'email' => 'required|email',
            'password' => 'required',
        ]);
   
        if(auth()->attempt(array('email' => $input['email'], 'password' => $input['password'])))
        {
            if (auth()->user()->admin == 1) {
                return redirect()->route('admin.home');
            }elseif(auth()->user()->admin == 0){
                return redirect()->route('home');
            }
        }else{
            return redirect()->route('login')
                ->with('error','Email-Address And Password Are Wrong.');
        }
          
    }
}

Langkah 6 : Membuat Middleware Admin

Jika sudah, mari kita membuat middleware untuk admin, dengan perintah dibawah ini :

php artisan make:middleware Admin
Silahkan kalian copy script dibawah ini kemudian ganti semua script yang ada pada  App/Http/Middleware/Admin.php.

<?php

namespace App\Http\Middleware;

use Closure;
use Auth;

class Admin
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(auth()->user()->admin == 1){
            return $next($request);
        }
   
        return redirect()->back()->with('error',"You don't have admin access.");
    }
}
Jika sudah mari kita tambahkan middlewarenya di App/Http/kernel.php
'admin' => \App\Http\Middleware\Admin::class
Kenel.php

Langkah 7 : Custom HomeController

Disini kita akan custom HomeController seperti script dibawah ini :

<?php

namespace 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');
    }
    public function admin()
    {
        return view('homeAdmin');
    }
}

Langkah 8 : Tambahkan Home untuk Admin

Silahkan teman-teman copy isi dari view home.blade.php lalu buat file baru dengan nama terserah kalian contoh: homeAdmin.blade.php
@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header">Dashboard</div>

                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif
                    You are logged in! <b>Admin</b> {{ Auth::user()->name }}
                </div>
            </div>
        </div>
    </div>
</div>
@endsection

Langkah 9 : Route

Yang terakhir, silahkan kalian pergi ke routes/web.php kemudian rubah seperti script dibawah ini :

<?php

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Auth::routes();

Route::get('/home', '[email protected]')->name('home');
Route::get('admin/home', '[email protected]')->name('admin.home')->middleware('admin');

Langkah 10 : Selesai

Silahkan teman-teman jalankan perintah dibawah ini untuk melihat hasilnya :
php artisan serve
PENTING!!! Jangan lupa untuk isi kolom admin dengan angka 1 agar user tersebut jadi Admin.
Contoh isi table user


Hasilnya akan seperti gambar dibawah ini :
Admin

User

Sekian dari saya, semoga tutorial ini bermanfaat untuk kita semua.
OMJUAN.COM

Situs penyedia tutorial programming online.