1. Go to this page and download the library: Download anyx/login-gate-bundle library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
anyx / login-gate-bundle example snippets
namespace App\Service;
use Anyx\LoginGateBundle\Service\UsernameResolverInterface;
use Symfony\Component\HttpFoundation\Request;
/**
* Username resolver for json login
*/
class UsernameResolver implements UsernameResolverInterface
{
public function resolve(Request $request)
{
$requestData = json_decode($request->getContent(), true);
return is_array($requestData) && array_key_exists('username', $requestData) ? $requestData['username'] : null;
}
}
namespace App\Controller;
use Anyx\LoginGateBundle\Service\BruteForceChecker;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
class SecurityController extends AbstractController
{
/**
* @Route("/login", name="login")
*/
public function formLogin(AuthenticationUtils $authenticationUtils, BruteForceChecker $bruteForceChecker, Request $request): Response
{
if (!$bruteForceChecker->canLogin($request)) {
return new Response('Too many login attempts');
}
$error = $authenticationUtils->getLastAuthenticationError();
$lastUsername = $authenticationUtils->getLastUsername();
return $this->render('security/login.html.twig', ['last_username' => $lastUsername, 'error' => $error]);
}
}