done simple login/register flow
This commit is contained in:
parent
ade225e507
commit
c823c6f2a9
@ -4,6 +4,8 @@ namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use App\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
|
||||
class LoginController extends Controller
|
||||
@ -37,4 +39,26 @@ class LoginController extends Controller
|
||||
{
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
// Validate request fields
|
||||
$this->validateLogin($request);
|
||||
|
||||
// Find existed user by email
|
||||
$requestEmail = $request->get('email');
|
||||
$existedUser = User::where('email', $requestEmail)->first();
|
||||
|
||||
if($existedUser) { // Login procedure
|
||||
if ($this->attemptLogin($request)) {
|
||||
return $this->sendLoginResponse($request);
|
||||
} else {
|
||||
$this->incrementLoginAttempts($request);
|
||||
return $this->sendFailedLoginResponse($request);
|
||||
}
|
||||
} else { // Register procedure
|
||||
$registerController = app(RegisterController::class);
|
||||
return $registerController->register($request);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use App\User;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
@ -51,7 +52,7 @@ class RegisterController extends Controller
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
'password' => ['required', 'string', 'min:8'],
|
||||
]);
|
||||
}
|
||||
|
||||
@ -68,4 +69,10 @@ class RegisterController extends Controller
|
||||
'password' => Hash::make($data['password']),
|
||||
]);
|
||||
}
|
||||
|
||||
protected function registered(Request $request, $user)
|
||||
{
|
||||
$request->session()->flash('registerd', true);
|
||||
return redirect($this->redirectPath());
|
||||
}
|
||||
}
|
||||
|
||||
@ -13,7 +13,6 @@ class HomeController extends Controller
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->middleware('auth');
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -21,7 +21,7 @@ class RouteServiceProvider extends ServiceProvider
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
public const HOME = '/home';
|
||||
public const HOME = '/';
|
||||
|
||||
/**
|
||||
* Define your route model bindings, pattern filters, etc.
|
||||
|
||||
@ -5,7 +5,10 @@
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-8">
|
||||
<div class="card">
|
||||
<div class="card-header">{{ __('Login') }}</div>
|
||||
<div class="card-header">
|
||||
<div>Login / Register</div>
|
||||
<div>Enter your credential to login, if you are not a member, you will be registered automatically</div>
|
||||
</div>
|
||||
|
||||
<div class="card-body">
|
||||
<form method="POST" action="{{ route('login') }}">
|
||||
|
||||
@ -13,8 +13,16 @@
|
||||
{{ session('status') }}
|
||||
</div>
|
||||
@endif
|
||||
|
||||
@if(session('registerd'))
|
||||
<div class="alert alert-success" role="alert">
|
||||
Register successful!
|
||||
</div>
|
||||
@endif
|
||||
@auth
|
||||
You are logged in!
|
||||
@else
|
||||
You are guest!
|
||||
@endauth
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -41,13 +41,8 @@
|
||||
<!-- Authentication Links -->
|
||||
@guest
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ route('login') }}">{{ __('Login') }}</a>
|
||||
<a class="nav-link" href="{{ route('login') }}">Login / Register</a>
|
||||
</li>
|
||||
@if (Route::has('register'))
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="{{ route('register') }}">{{ __('Register') }}</a>
|
||||
</li>
|
||||
@endif
|
||||
@else
|
||||
<li class="nav-item dropdown">
|
||||
<a id="navbarDropdown" class="nav-link dropdown-toggle" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" v-pre>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user