I would like to create a login form in twig (login + password) and which is customized. The form should search the Users table and the LDAP directory if the information entered exists.
Moreover, when I validate the form, I do not want the login and the password to be found in the URL.
At validation, if the user exists, he is redirected to a page, otherwise he will remain on the login page.
I managed to make a form, customized but that returns the login and password in the URL.
It looks like this:
And this is the code in twig :
{% extends 'base.html.twig' %}
{% block stylesheets %}
<link href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="stylesheet" id="bootstrap-css">
<script src="//maxcdn.bootstrapcdn.com/bootstrap/3.3.0/js/bootstrap.min.js"></script>
<script src="//code.jquery.com/jquery-1.11.1.min.js"></script>rel="stylesheet">
{% endblock %}
{% block body %}
<form class="navbar-form navbar-center">
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
<input id="text" type="text" class="form-control" name="login" value="" placeholder="Login">
</div>
<div class="input-group">
<span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
<input id="password" type="password" class="form-control" name="password" value="" placeholder="Mot de passe">
</div>
<button type="submit" class="btn btn-primary">Valider</button>
<br/><br/>
Pas de compte académique ? <a href="{{path('paquets_index')}}">Demande de création de compte</a>
</form>
{% endblock %}
Now my goal is to make sure that there is no login and password that are found in the URL to validation. It will just be a check and in function, it will show yes or no the next page. And I can not do it.
Moreover, from a functional point of view, is it useful to go through a formType builder from my Users entity? Or can I just be content with this kind of form, which would send back to the controller the information entered, to do the verification?
When in doubt, here is my form builder
<?php
namespace Site\PagesBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolver;
use Symfony\Component\Form\Extension\Core\Type\PasswordType;
use Symfony\Component\Form\Extension\Core\Type\TextType;
class ConnexionType extends AbstractType
{
/**
* {@inheritdoc}
*/
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('identifiant', TextType::class)
->add('password', PasswordType::class,array(
'attr' => array(
'placeholder'=> 'Mot de passe',
'label' =>'Mot de passe',
)
))
;
}/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Site\PagesBundle\Entity\User'
));
}
/**
* {@inheritdoc}
*/
public function getBlockPrefix()
{
return 'site_pagesbundle_user';
}
}
Thanks for your help !