Cara Membuat Login, Registrasi, dan Logout secara Manual di Laravel.

by | Aug 7, 2023 | Blog, Laravel, Modul, Pemrograman, Source Code, Templates, Tutorial | 0 comments

PENDAHULUAN

                   Laravel menangani proses otentikasi dengan berbagai cara, seperti menggunakan Jetstream, Breeze, dan sebagainya. Namun, kedua metode otentikasi tersebut terkadang terlalu kompleks jika digunakan dalam proyek-proyek dengan ruang lingkup yang lebih kecil. Oleh karena itu, Laravel menyediakan metode otentikasi manual. Pada kesempatan ini, kita akan membahas tentang cara melakukan otentikasi manual di Laravel.

 

Langkah 1 

         Persiapan Awal Pastikan Anda telah memiliki proyek Laravel yang telah dibuat sebelumnya. Jika belum, Anda dapat membuatnya dengan menggunakan perintah berikut di terminal :

composer create-project laravel/laravel nama-proyek-anda

Langkah 2 

         Database Pastikan juga Anda telah mengatur database dan informasi koneksi database di file .env proyek Laravel Anda.

Langkah 3 

         Tabel Pengguna (Users) Jika Anda belum memiliki tabel pengguna (users) di database, buatlah dengan menggunakan migration Laravel:

php artisan migrate

Langkah 4 

           Pembuatan Route Selanjutnya, buatlah rute (route) untuk halaman login, registrasi, dan logout. Anda dapat menambahkan rute ini di dalam file routes/web.php :

Route::get(‘/login’, ‘AuthController@showLoginForm’)->name(‘login’);

Route::post(‘/login’, ‘AuthController@login’);

Route::post(‘/logout’, ‘AuthController@logout’)->name(‘logout’);

Route::get(‘/register’, ‘AuthController@showRegistrationForm’)->name(‘register’);

Route::post(‘/register’, ‘AuthController@register’);

    Langkah 5

               Pembuatan Controller Buatlah controller yang akan mengurus logika otentikasi. Anda dapat menggunakan perintah artisan berikut :

    php artisan make:controller AuthController

    Setelah itu, buka file AuthController yang baru dibuat di dalam folder “app/Http/Controllers” dan implementasikan metode-metode berikut :

    use Illuminate\Http\Request;
    use Illuminate\Support\Facades\Auth;
    class AuthController extends Controller
    {
        public function showLoginForm()
        {
            return view('login');
        }
        public function login(Request $request)
        {
            $credentials = $request->validate([
                'email' => 'required|email',
                'password' => 'required',
            ]);
            if (Auth::attempt($credentials)) {
                $request->session()->regenerate();
                return redirect()->intended('/');
            }
            return back()->withErrors([
                'email' => 'Kombinasi email dan password tidak cocok.',
            ]);
        }
        public function logout(Request $request)
        {
            Auth::logout();
            $request->session()->invalidate();
            $request->session()->regenerateToken();
            return redirect('/');
        }
        public function showRegistrationForm()
        {
            return view('register');
        }
        public function register(Request $request)
        {
            $credentials = $request->validate([
                'name' => 'required',
                'email' => 'required|email|unique:users',
                'password' => 'required|min:8|confirmed',
            ]);
            $user = User::create([
                'name' => $credentials['name'],
                'email' => $credentials['email'],
                'password' => bcrypt($credentials['password']),
            ]);
            Auth::login($user);
           return redirect()->intended('/');
        }
    }

    Langkah 6

                  Pembuatan View Terakhir, buatlah tampilan (view) untuk halaman login dan registrasi. Anda dapat membuat file “login.blade.php” dan “register.blade.php” di dalam folder “resources/views”.

    Berikut adalah contoh sederhana kode untuk login.blade.php  :

    ```

    <!DOCTYPE html>

    <html>

    <head>

        <title>Login</title>

    </head>

    <body>

        <h2>Login</h2>

        @if ($errors->any())

            <div>

                <ul>

                    @foreach ($errors->all() as $error)

                        <li>{{ $error }}</li>

                    @endforeach

                </ul>

            </div>

        @endif

        <form method=”POST” action=”{{ url(‘/login’) }}”>

            @csrf

            <label for=”email”>Email:</label>

            <input type=”email” name=”email” required>

     

            <label for=”password”>Password:</label>

            <input type=”password” name=”password” required>

     

            <button type=”submit”>Login</button>

        </form>

    </body>

    </html>

    Dan berikut adalah contoh sederhana kode untuk register.blade.php :

    <!DOCTYPE html>

    <html>

    <head>

        <title>Register</title>

    </head>

    <body>

        <h2>Register</h2>

     

        @if ($errors->any())

            <div>

                <ul>

                    @foreach ($errors->all() as $error)

                        <li>{{ $error }}</li>

                    @endforeach

                </ul>

            </div>

        @endif

     

        <form method=”POST” action=”{{ url(‘/register’) }}”>

            @csrf

     

            <label for=”name”>Name:</label>

            <input type=”text” name=”name” required>

     

            <label for=”email”>Email:</label>

            <input type=”email” name=”email” required>

     

            <label for=”password”>Password:</label>

            <input type=”password” name=”password” required>

     

            <label for=”password_confirmation”>Confirm Password:</label>

            <input type=”password” name=”password_confirmation” required>

     

            <button type=”submit”>Register</button>

        </form>

    </body>

    </html>

    Kesimpulan

                 Dengan mengikuti langkah-langkah di atas, Anda dapat membuat fitur login, registrasi, dan logout secara manual di Laravel. Pastikan Anda telah memahami kode yang ditulis dan juga melakukan penyesuaian sesuai kebutuhan proyek Anda. Selamat mencoba!

    0 Comments

    Submit a Comment

    Your email address will not be published. Required fields are marked *