Kustomisasi Login di Laravel 8 (2020)
Tags: laravel, auth, leenuksid
Published: 2020-09-12 14:54:01

***Bismillah***

Alhamdulillah kali ini saya masih bisa menulis artikel yang semoga bisa bermanfaat bagi teman teman yang membaca..

Sesuai dengan judul, saya ingin *sharing - sharing* sedikit tentang **Kustomisasi Login di Laravel 8**

# 💡 Info Update Laravel 8

OK, langsung saja.. Laravel baru saja melakukan Update ke versi 8 yang membawa banyak sekali hal yang baru, Seperti menggunakannya **TailwindCSS**, **Livewire**, Folder Models, **Jetstream**, Pembaharuan Factory, dan lainnya.. yang teman - teman bisa baca sendiri di https://laravel.com/docs/8.x/releases

Dengan adanya Jetstream, Laravel telah menghapus Laravel UI yang sebelumnya digunakan di Laravel 6 dan 7 sebagai **Authentication Scaffold** nya

Nah.. Karena perubahan tersebut, Otomatis untuk melakukan kustomasi pada login pun berbeda. File" yang biasanya kita temui seperti ***LoginController.php*** sudah tidak ada di Laravel 8. Berikut adalah beberapa Cara yang telah temukan untuk kustomisasi Login di Laravel 8 :

## 📬 Mengubah Input Email ketika Login
1.	Pergi ke Folder **config > fortify.php**
2.	pada Line 45 (Default) ada key **"username" => "email"**. 
Ubah email menjadi apapun yang teman teman inginkan misalkan username. Sehingga menjadi **"username" => "username"**. Dengan begitu teman teman bisa login menggunakan username dan password tanpa butuh email. Tentu Saja harus disesuaikan juga dengan yg di database.

## 🔓 Mengubah Route / Tujuan Setelah Berhasil Login

1.	Pergi ke Folder **app > Providers > RouteServiceProvider.php**
2.	ubah "/dashboard" sesuai dengan keinginan pada line 20
``` public  const  HOME  =  '/dashboard';```
Nantinya, setelah Login berhasil maka akan ke route yang teman teman arahkan disini

## 🔐 Mengubah Minimum Requirement Password ketika Register
Default / Bawaannya di Laravel 8 jika kita ingin register maka password minimal 8 Karakter untuk mengubahnya :

1.	Pergi ke **vendor > laravel > fortify > src > Rule > Password.php**
2.	Ubah ``` protected $length =  8;``` Sesuai keinginan misalkan 10
3.	Dan jika teman teman ingin ketika register passwordnya harus ada Karakter yang Uppercase / Besar tinggal ubah ***$requireUppercase*** dari **false** ke **true**
4.	Dan kalau teman teman ingin juga ketika register passwordnya haru ada angkanya tinggal ubah ***$requireNumeric*** dari **false** ke **true**

## ✍️ Mengubah Bahasa Validasi ketika Error di Login & Register
1.	Masih di FIle yang sama dengan langkah sebelumnya
2.	Scroll saja ke bawah sedikit maka teman teman akan bertemu dengan `function message()`
3.	Ubah String yang ada di function tsb. ke bahasa yang teman teman inginkan
Sebelumnya : 
![Sebelumnya](https://dev-to-uploads.s3.amazonaws.com/i/g476af3689quhd52bozd.png)
Sesudahnya :
![Sesudahnya](https://dev-to-uploads.s3.amazonaws.com/i/10er2ouuyg5rvgd630q0.png)


## ❤️ Membuat Login Controller Sendiri
Nah, bagi teman teman yang ingin membuat login controller sendiri bisa ikuti langkah - langkah berikut :

1.	Buat file dengan nama ***LoginController.php*** di **app > Http > Controllers**. Sebenanrnya untuk nama controller bebasa. Hanya contoh saja biar sesuai dengan fungsinya.
2.	lalu paste code berikut di dalamnya
```php
<?php
namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;

class LoginController extends Controller{
    public function authenticate(Request $request){
        // Inputan yg diambil
        $credentials = $request->only('email', 'password');

        if (Auth::attempt($credentials)) {
            // Jika berhasil login

            return redirect('berhasil');

            //return redirect()->intended('/details');
        }
        // Jika Gagal
        return redirect('login');
    }
}

```
3.	Ubah bagian yang saya komentari sesuai keinginan teman teman
4.	Tambah Route di **routes >** **web.php** 
Contoh :
```Route::post('logged_in',  [LoginController::class,  'authenticate']);```
5.	Ubah **action** *attribut* di views login dan arahkan ke route 

Dengan membuat Login Controller sendiri, teman teman juga bisa mengubah email menjadi username / lainnya sesuai keinginan. Tinggal ubah saja tulisan email di dalam **$credentials** dari kode yang saya berikan di atas.

# ⌛️ Penutup

Ok, bagaimana ? Sudah terbiasa dengan **Authentication** di Laravel 8 ? Sebenarnya masih ada banyak konfigurasi **Authentication** lainnya yang bisa diubah. Kalo memang teman teman mau juga **Konfigurasi Authentication** lainnya mungkin bisa komen aja dibawah kali ya 😉  

**Sekian Semoga Bermanfaat..** 

**Terima Kasih** 👊