Skip to content

Instantly share code, notes, and snippets.

@imanghafoori1
Last active February 22, 2018 18:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save imanghafoori1/c7b3c5942b7b15702ea93d7bc06f7c8c to your computer and use it in GitHub Desktop.
Save imanghafoori1/c7b3c5942b7b15702ea93d7bc06f7c8c to your computer and use it in GitHub Desktop.
<?php
class LoginController
{
function Login(Request $request)
{
$this->validateRequest($request);
$this->throttleAttemps($request);
$this->handleValidCredentials($request);
$this->handleInvalidCredentials($request);
}
/**
* @param \Illuminate\Http\Request $request
*/
private function validateRequest(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|max:255||string',
'password' => 'required|confirmed||string',
]);
if ($validator->fails()) {
sendAndTerminate(redirect('/some-where')->withErrors($validator)->withInput());
}
}
/**
* @param \Illuminate\Http\Request $request
*/
private function throttleAttemps(Request $request)
{
if ($this->hasTooManyLoginAttempts($request)) {
$this->fireLockoutEvent($request);
sendAndTerminate($this->lockoutResponse($request));
}
}
/**
* @param \Illuminate\Http\Request $request
*/
private function handleValidCredentials(Request $request)
{
if ($this->attemptLogin($request)) {
sendAndTerminate($this->loginResponse($request));
}
}
/**
* @param \Illuminate\Http\Request $request
*/
private function handleInvalidCredentials(Request $request)
{
$this->incrementLoginAttempts($request);
sendAndTerminate($this->failedLoginResponse($request));
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment