routing page
Route::redirect('/', '/login');
Route::get('/home', function () {
if (session('status')) {
return redirect()->route('admin.home')->with('status', session('status'));
}
return redirect()->route('admin.home');
});
Auth::routes();
Controller
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
}
blade file
@extends('layouts.app')
@section('content')
<div class="row justify-content-center">
<div class="col-md-6">
<div class="card mx-4">
<div class="card-body p-4">
<h1>{{ trans('panel.site_title') }}</h1>
<p class="text-muted">{{ trans('global.login') }}</p>
@if(session('message'))
<div class="alert alert-info" role="alert">
{{ session('message') }}
</div>
@endif
<form method="POST" action="{{ route('login') }}">
@csrf
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text">
<i class="fa fa-user"></i>
</span>
</div>
<input id="email" name="email" type="text" class="form-control{{ $errors->has('email') ? ' is-invalid' : '' }}" required autocomplete="email" autofocus placeholder="{{ trans('global.login_email') }}" value="{{ old('email', null) }}">
@if($errors->has('email'))
<div class="invalid-feedback">
{{ $errors->first('email') }}
</div>
@endif
</div>
<div class="input-group mb-3">
<div class="input-group-prepend">
<span class="input-group-text"><i class="fa fa-lock"></i></span>
</div>
<input id="password" name="password" type="password" class="form-control{{ $errors->has('password') ? ' is-invalid' : '' }}" required placeholder="{{ trans('global.login_password') }}">
@if($errors->has('password'))
<div class="invalid-feedback">
{{ $errors->first('password') }}
</div>
@endif
</div>
<div class="input-group mb-4">
<div class="form-check checkbox">
<input class="form-check-input" name="remember" type="checkbox" id="remember" style="vertical-align: middle;" />
<label class="form-check-label" for="remember" style="vertical-align: middle;">
{{ trans('global.remember_me') }}
</label>
</div>
</div>
<div class="row">
<div class="col-6">
<button type="submit" class="btn btn-primary px-4">
{{ trans('global.login') }}
</button>
</div>
<div class="col-6 text-right">
@if(Route::has('password.request'))
<a class="btn btn-link px-0" href="{{ route('password.request') }}">
{{ trans('global.forgot_password') }}
</a><br>
@endif
</div>
</div>
</form>
</div>
</div>
</div>
</div>
@endsection
~~~
Model file
~~~
~~~
<?php
namespace App\Models;
use App\Traits\Auditable;
use Carbon\Carbon;
use DateTimeInterface;
use Hash;
use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Spatie\MediaLibrary\HasMedia;
use Spatie\MediaLibrary\InteractsWithMedia;
use Spatie\MediaLibrary\MediaCollections\Models\Media;
class User extends Authenticatable implements HasMedia
{
use SoftDeletes, Notifiable, InteractsWithMedia, Auditable, HasFactory;
public $table = 'users';
public const COUNTRY_SELECT = [
'india' => 'India',
];
public const CITY_SELECT = [
'chennai' => 'Chennai',
];
protected $hidden = [
'remember_token',
'password',
];
public const STATE_SELECT = [
'tamil nadu' => 'Tamil Nadu',
];
public static $searchable = [
'name',
'emp_no',
'mobile',
'city',
'district',
];
public const GENDER_SELECT = [
'1' => 'Male',
'2' => 'Female',
'3' => 'Transgender',
];
protected $dates = [
'email_verified_at',
'dob',
'created_at',
'updated_at',
'deleted_at',
];
protected $fillable = [
'name',
'email',
'email_verified_at',
'password',
'remember_token',
'father_name',
'mother_name',
'emp_no',
'gender',
'dob',
'mobile',
'emergency_contact',
'present_address',
'city',
'district',
'state',
'country',
'permanent_address',
'per_city',
'per_district',
'per_state',
'per_country',
'created_at',
'updated_at',
'deleted_at',
];
protected function serializeDate(DateTimeInterface $date)
{
return $date->format('Y-m-d H:i:s');
}
public function getIsAdminAttribute()
{
return $this->roles()->where('id', 1)->exists();
}
public function registerMediaConversions(Media $media = null): void
{
$this->addMediaConversion('thumb')->fit('crop', 50, 50);
$this->addMediaConversion('preview')->fit('crop', 120, 120);
}
public function userUserAlerts()
{
return $this->belongsToMany(UserAlert::class);
}
public function getEmailVerifiedAtAttribute($value)
{
return $value ? Carbon::createFromFormat('Y-m-d H:i:s', $value)->format(config('panel.date_format') . ' ' . config('panel.time_format')) : null;
}
public function setEmailVerifiedAtAttribute($value)
{
$this->attributes['email_verified_at'] = $value ? Carbon::createFromFormat(config('panel.date_format') . ' ' . config('panel.time_format'), $value)->format('Y-m-d H:i:s') : null;
}
public function setPasswordAttribute($input)
{
if ($input) {
$this->attributes['password'] = app('hash')->needsRehash($input) ? Hash::make($input) : $input;
}
}
public function sendPasswordResetNotification($token)
{
$this->notify(new ResetPassword($token));
}
public function roles()
{
return $this->belongsToMany(Role::class);
}
public function getDobAttribute($value)
{
return $value ? Carbon::parse($value)->format(config('panel.date_format')) : null;
}
public function setDobAttribute($value)
{
$this->attributes['dob'] = $value ? Carbon::createFromFormat(config('panel.date_format'), $value)->format('Y-m-d') : null;
}
}
~~~
Here my doubt is i need to login input field add one more field to verify how two verify. This code is laravel 10
download from quickadminpanel site. here i dont know how to login function working. anyone could assist me.