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
- Pergi ke Folder config > fortify.php
- 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
- Pergi ke Folder app > Providers > RouteServiceProvider.php
- 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 :
- Pergi ke vendor > laravel > fortify > src > Rule > Password.php
- Ubah
protected $length = 8;
Sesuai keinginan misalkan 10 - Dan jika teman teman ingin ketika register passwordnya harus ada Karakter yang Uppercase / Besar tinggal ubah $requireUppercase dari false ke true
- 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
- Masih di FIle yang sama dengan langkah sebelumnya
- Scroll saja ke bawah sedikit maka teman teman akan bertemu dengan
function message()
- Ubah String yang ada di function tsb. ke bahasa yang teman teman inginkan Sebelumnya : Sesudahnya :
โค๏ธ Membuat Login Controller Sendiri
Nah, bagi teman teman yang ingin membuat login controller sendiri bisa ikuti langkah - langkah berikut :
- Buat file dengan nama LoginController.php di app > Http > Controllers. Sebenanrnya untuk nama controller bebasa. Hanya contoh saja biar sesuai dengan fungsinya.
- 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');
}
}
- Ubah bagian yang saya komentari sesuai keinginan teman teman
- Tambah Route di routes > web.php Contoh :
Route::post('logged_in', [LoginController::class, 'authenticate']);
- 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)
bang itu mengubah mengubah file vendor emang boleh khusus jetstream atau gimana? Klo nanti update ga ada masalah kah?
Iya, Memang gak rekomendasi kalo yg ubah vendor ..
bang, mau tanya kalau nampilin pesan error dan sukses register dan login di laravel jetstream gimana ya ?
kalo mau custom validasi mennding saran sih di RegisterController aja disitu ada function validator
public const HOME = '/dashboard'; sudah diganti tapi tidak terdeteksi
404 | Not found
Pastikan di Route nya diberi name
bang gmn kalau laravel 8 auth mau di loginin pake md5?
Maaf, apakah dengan menggunakan $credentials = $request->only('username', 'password'); sudah cukup untuk merubah login dengna username tanpa harus mengubah kode pada file config->fortify?