Symfony - я не могу настроить свою форму с помощью ветки

Я хотел бы создать форму входа в twig (логин + пароль) и настроить ее. Форма должна искать в таблице Users и каталоге LDAP, если введенная информация существует.

Более того, когда я валидирую форму, я не хочу, чтобы логин и пароль находились в URL.

При валидации, если пользователь существует, он перенаправляется на страницу, в противном случае он останется на странице входа.

Мне удалось сделать форму, настроенную, но которая возвращает логин и пароль в URL.

Это выглядит так:

введите описание изображения здесь

А это код в ветке:

{% 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 %}

Теперь моя цель убедиться, что нет логина и пароля, которые встречаются в URL-адресе для проверки. Это будет просто проверка и функция, она покажет да или нет на следующей странице. И я не могу этого сделать.

Кроме того, с функциональной точки зрения, полезно ли использовать конструктор formType из моей сущности Users? Или я могу просто довольствоваться такой формой, которая отправит обратно контролеру введенную информацию для проверки?

Если сомневаетесь, вот мой конструктор форм

<?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';
    }


}

Спасибо за вашу помощь !

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
205
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

В настоящее время вы не используете свою форму, сгенерированную ConnexionType, если вы хотите использовать ее в своем файле Twig, вы можете отобразить ее таким образом {{form(form) }}, если вы отправляете ее через свой контроллер.

У вас есть вся необходимая информация здесь

Затем, чтобы не передавать логин и пароль в URL, используйте метод POST

В противном случае я рекомендую пакет безопасности Пакет безопасности, чтобы получить безопасную форму.

Надеюсь, я помог вам.

Привет, да, моя цель именно в том, чтобы использовать formType, сохраняя при этом точно такой же рендеринг (дизайн), как тот, который я разместил в своем первом посте с фотографиями. Потому что, используя formType, я не могу получить рендеринг Bootstrap 3 с правильно вставленными глификонами.

Agar io FR 01.04.2019 13:03
symfony.com/doc/current/form/bootstrap4.html Первый ответ здесь, чтобы настроить форму
Warps73 01.04.2019 13:19

Спасибо за ответ, наконец-то удалось отредактировать форму :)

Agar io FR 01.04.2019 13:24
Ответ принят как подходящий

Я не совсем уверен, насколько вы склонны изобретать велосипед. Но у symfony есть много всего подготовленного, так как это не такой уж необычный вариант использования.

Мне нравится учебник 3.4 по созданию логина: https://symfony.com/doc/3.4/security/form_login_setup.html

(сбоку есть возможность переключиться на 4.3 или что-то еще, однако учебник 3.4 должен работать даже в 4.x)

вам не особенно нужен собственный FormType для входа в систему, поскольку компоненты безопасности уже обрабатывают отправку форм. Также взгляните на защиту csrf ;o)

Спасибо за ваш ответ ! Я только что прочитал статью. Так будет ли он искать в таблице пользователей, если введенные данные существуют, и автоматически перенаправлять? Однако не упоминается, позволяет ли эта утилита проверять и таблицу пользователей, и каталог LDAP, так ли это?

Agar io FR 01.04.2019 13:26

я подозреваю, что вам нужно добавить нового UserProvider.

Jakumi 01.04.2019 14:32

@AgarioFR symfony.com/doc/current/security/ldap.html должен сделать свое дело, когда провайдер цепочки пользователей сначала проверяет ldap, а затем db

Jakumi 01.04.2019 14:52

Спасибо ! Итак, это проверит наличие LDAP, но означает ли это, что мне нужно создать форму входа для LDAP и одну для пользователей БД? Или я могу совместить оба?

Agar io FR 01.04.2019 15:02

@AgarioFR Я считаю, что вы можете комбинировать это, хотя я совершенно уверен, что поиск в Google поможет вам узнать (вы не будете первым с этой проблемой; о)

Jakumi 01.04.2019 15:03

Другие вопросы по теме