
This post was last updated on October 26th, 2021 at 06:12 am
Hi Dev,
Today, i we will show you laravel 8 custom login and registration. This article will give you simple example of laravel 8 custom login and registration. you will laravel 8 custom login and registration. In this article, we will implement a laravel 8 custom login and registration. So let’s follow few step to create example of laravel 8 custom login and registration.
Preview:-
Create Laravel App
run the following command to install the new laravel.
1 | composer create-project --prefer-dist laravel/laravel custom_login |
Connect To Database
1 2 3 4 5 6 | DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel DB_USERNAME=root DB_PASSWORD= |
1 | php artisan migrate |
Create Auth Controller
1 | php artisan make:controller AuthController |
app\Http\Controllers\AuthController.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 | <?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Hash; use Session; use App\Models\User; use Illuminate\Support\Facades\Auth; class AuthController extends Controller { public function index() { return view( 'auth.login' ); } public function customLogin(Request $request ) { $request ->validate([ 'email' => 'required' , 'password' => 'required' , ]); $credentials = $request ->only( 'email' , 'password' ); if (Auth::attempt( $credentials )) { return redirect()->intended( 'dashboard' ) ->withSuccess( 'Signed in' ); } return redirect( "login" )->withSuccess( 'Login details are not valid' ); } public function registration() { return view( 'auth.registration' ); } public function customRegistration(Request $request ) { $request ->validate([ 'name' => 'required' , 'email' => 'required|email|unique:users' , 'password' => 'required|min:6' , ]); $data = $request ->all(); $check = $this ->create( $data ); return redirect( "dashboard" )->withSuccess( 'You have signed-in' ); } public function create( array $data ) { return User::create([ 'name' => $data [ 'name' ], 'email' => $data [ 'email' ], 'password' => Hash::make( $data [ 'password' ]) ]); } public function dashboard() { if (Auth::check()){ return view( 'dashboard' ); } return redirect( "login" )->withSuccess( 'You are not allowed to access' ); } public function signOut() { Session:: flush (); Auth::logout(); return Redirect( 'login' ); } } |
Create Routes
routes/web.php
1 2 3 4 5 6 7 8 | use App\Http\Controllers\AuthController; Route::get( 'dashboard' , [AuthController:: class , 'dashboard' ]); Route::get( 'login' , [AuthController:: class , 'index' ])->name( 'login' ); Route::post( 'custom-login' , [AuthController:: class , 'customLogin' ])->name( 'login.custom' ); Route::get( 'registration' , [AuthController:: class , 'registration' ])->name( 'register-user' ); Route::post( 'custom-registration' , [AuthController:: class , 'customRegistration' ])->name( 'register.custom' ); Route::get( 'signout' , [AuthController:: class , 'signOut' ])->name( 'signout' ); |
Create Blade View Files
resources/views/auth/login.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | @ extends ( 'dashboard' ) @section( 'content' ) <main class = "login-form" > <div class = "cotainer" > <div class = "row justify-content-center" > <div class = "col-md-4" > <div class = "card" > <h3 class = "card-header text-center" >Login</h3> <div class = "card-body" > <form method= "POST" action= "{{ route('login.custom') }}" > @csrf <div class = "form-group mb-3" > <input type= "text" placeholder= "Email" id= "email" class = "form-control" name= "email" required autofocus> @ if ( $errors ->has( 'email' )) <span class = "text-danger" >{{ $errors ->first( 'email' ) }}</span> @ endif </div> <div class = "form-group mb-3" > <input type= "password" placeholder= "Password" id= "password" class = "form-control" name= "password" required> @ if ( $errors ->has( 'password' )) <span class = "text-danger" >{{ $errors ->first( 'password' ) }}</span> @ endif </div> <div class = "form-group mb-3" > <div class = "checkbox" > <label> <input type= "checkbox" name= "remember" > Remember Me </label> </div> </div> <div class = "d-grid mx-auto" > <button type= "submit" class = "btn btn-dark btn-block" >Signin</button> </div> </form> </div> </div> </div> </div> </div> </main> @endsection |
resources/views/auth/registration.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 | @ extends ( 'dashboard' ) @section( 'content' ) <main class = "signup-form" > <div class = "cotainer" > <div class = "row justify-content-center" > <div class = "col-md-4" > <div class = "card" > <h3 class = "card-header text-center" >Register User</h3> <div class = "card-body" > <form action= "{{ route('register.custom') }}" method= "POST" > @csrf <div class = "form-group mb-3" > <input type= "text" placeholder= "Name" id= "name" class = "form-control" name= "name" required autofocus> @ if ( $errors ->has( 'name' )) <span class = "text-danger" >{{ $errors ->first( 'name' ) }}</span> @ endif </div> <div class = "form-group mb-3" > <input type= "text" placeholder= "Email" id= "email_address" class = "form-control" name= "email" required autofocus> @ if ( $errors ->has( 'email' )) <span class = "text-danger" >{{ $errors ->first( 'email' ) }}</span> @ endif </div> <div class = "form-group mb-3" > <input type= "password" placeholder= "Password" id= "password" class = "form-control" name= "password" required> @ if ( $errors ->has( 'password' )) <span class = "text-danger" >{{ $errors ->first( 'password' ) }}</span> @ endif </div> <div class = "form-group mb-3" > <div class = "checkbox" > <label><input type= "checkbox" name= "remember" > Remember Me</label> </div> </div> <div class = "d-grid mx-auto" > <button type= "submit" class = "btn btn-dark btn-block" >Sign up</button> </div> </form> </div> </div> </div> </div> </div> </main> @endsection |
resources/views/dashboard.blade.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <!DOCTYPE html> <html> <head> <title>Laravel 8 Custom Login And Registration - codeplaners.com</title> <link href= "https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta3/dist/css/bootstrap.min.css" rel= "stylesheet" > </head> <body> <nav class = "navbar navbar-light navbar-expand-lg mb-5" style= "background-color: #e3f2fd;" > <div class = "container" > <a class = "navbar-brand mr-auto" href= "#" >CodePlaners</a> <button class = "navbar-toggler" type= "button" data-bs-toggle= "collapse" data-bs-target= "#navbarNav" aria-controls= "navbarNav" aria-expanded= "false" aria-label= "Toggle navigation" > <span class = "navbar-toggler-icon" ></span> </button> <div class = "collapse navbar-collapse" id= "navbarNav" > <ul class = "navbar-nav" > @guest <li class = "nav-item" > <a class = "nav-link" href= "{{ route('login') }}" >Login</a> </li> <li class = "nav-item" > <a class = "nav-link" href= "{{ route('register-user') }}" >Register</a> </li> @ else <li class = "nav-item" > <a class = "nav-link" href= "{{ route('signout') }}" >Logout</a> </li> @endguest </ul> </div> </div> </nav> @ yield ( 'content' ) </body> </html> |
Run Laravel Development Server
1 | php artisan serve |
http://127.0.0.1:8000/login
I hope it will assist you…