Login Customization in Laravel 8
Tags: laravel, php, auth, leenuksid
Published: 2020-09-12 15:12:02

***Bismillah***

this time I can still write an article that hopefully can be useful for friends who read...

As the title implies, I want to *share* a little about **Login Customization in Laravel 8**

# 💡 Laravel 8 Update Info

Laravel has just updated to version 8 which brings a lot of new things, like using it **TailwindCSS**, **Livewire**, Folder Models, **Jetstream**, Factory Updates, and others ... You can read it yourself at https://laravel.com/docs/8.x/releases

With Jetstream, Laravel has removed the Laravel UI which was previously used in Laravel 6 and 7 as its **Authentication Scaffold**

Well .. Because of these changes, automatic customization for the login is different. Files that we usually encounter like ***LoginController.php*** are no longer in Laravel 8. Here are some Ways that have been found to customize Login in Laravel 8:

## 📬 Change the Email Input when Login

1. Go to Folder **config > fortify.php**
2. On Line 45 (Default) there is a key **"username" => "email"**.
Change the email to whatever you want, for example, username. So it becomes **"username" => "username"**. That way you can log in using a username and password without the need for email. Of course it must also be adjusted to those in
database.

## 🔓 Changing the Route / Destination After Successfully Login

1. Go to Folder **app > Providers > RouteServiceProvider.php**
2. Change the "/ dashboard" as desired on line 20
``` public const HOME = '/ dashboard'; ```
after successful login it will go to the route you point here

## 🔐 Change the Minimum Requirement Password when registering

By default in Laravel 8, if we want to register then the password is at least 8 characters to change it:

- Go to **vendor > laravel > fortify > src > Rule > Password.php**
- Change  ```protected $ length = 8;``` As you wish, for example 10
- And if you want when registering, the password must have an Uppercase character, just change it ***$requireUppercase*** from **false** to **true**
- And if you want to register, the password must be a number, just change ***$requireNumeric*** from **false** to **true**

## ✍️ Change Validation Language when Login & Register Error

- Still in the same FIle as the previous step
- Just scroll down a bit and you will see `function message ()`
- Change the existing string in the function. to the language you want

Previous:
![Previous](https://dev-to-uploads.s3.amazonaws.com/i/tbbhoca4h05qfocj8iey.png)
Afterwards:
![Afterwards](https://dev-to-uploads.s3.amazonaws.com/i/kejgzcahoyr6fchofk4x.png)
## ❤️ Create Your Own Login Controller

So, for those of you who want to create your own login controller, you can follow these steps:

- Create a file with the name ***LoginController.php*** in **app > Http > Controllers**. Actually for the controller name free. Just an example so that it fits its function.
- then paste the following code in it
```php
<?php
namespace App\Http\Controllers;

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

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

        if (Auth::attempt($credentials)) {
            // if success login

            return redirect('berhasil');

            //return redirect()->intended('/details');
        }
        // if failed login
        return redirect('login');
    }
}
```
- Change the part that I comment on the you wish
- Add routes at **routes > web.php**
Example:
```Route::post('logged_in', [LoginController::class, 'authenticate']);```
- Change **action** *attributes* in login views and point to route

By creating your own Login Controller, you can also change your email to a username / other as you wish. Just change the text of the email in the **$ credentials** from the code I provided above.

# ⌛️ Closing

Ok, how? Already familiar with **Authentication** in Laravel 8? Actually there are many other **Authentication** configurations that can be changed.

**So Hopefully Helpful ..**

**Thank you** 👊