DEV Community

Cover image for Kustomisasi Login di Laravel 8 (2020)
AibnuHibban
AibnuHibban

Posted on • Edited on

Kustomisasi Login di Laravel 8 (2020)

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 Sesudahnya : Sesudahnya

โค๏ธ 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
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');
    }
}

Enter fullscreen mode Exit fullscreen mode
  1. Ubah bagian yang saya komentari sesuai keinginan teman teman
  2. Tambah Route di routes > web.php Contoh :

Route::post('logged_in', [LoginController::class, 'authenticate']);

  1. 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 ๐Ÿ‘Š

Top comments (8)

Collapse
 
gotrakarwinata profile image
gotrakarwinata

bang itu mengubah mengubah file vendor emang boleh khusus jetstream atau gimana? Klo nanti update ga ada masalah kah?

Collapse
 
aibnuhibban profile image
AibnuHibban

Iya, Memang gak rekomendasi kalo yg ubah vendor ..

Collapse
 
nisafadilah123 profile image
Nisafadilah123

bang, mau tanya kalau nampilin pesan error dan sukses register dan login di laravel jetstream gimana ya ?

Collapse
 
indrysfa profile image
Indry Sefviana

kalo mau custom validasi mennding saran sih di RegisterController aja disitu ada function validator

Collapse
 
hana10 profile image
Hanamichi

public const HOME = '/dashboard'; sudah diganti tapi tidak terdeteksi
404 | Not found

Collapse
 
aibnuhibban profile image
AibnuHibban

Pastikan di Route nya diberi name

Collapse
 
yudhioktaviangule profile image
yudhioktaviangule • Edited

bang gmn kalau laravel 8 auth mau di loginin pake md5?

Collapse
 
matthelosh profile image
Muhammad Soleh

Maaf, apakah dengan menggunakan $credentials = $request->only('username', 'password'); sudah cukup untuk merubah login dengna username tanpa harus mengubah kode pada file config->fortify?