Перенаправление после успеха формы Symfony 4 - PullRequest
0 голосов
/ 24 мая 2018

Я следовал этому уроку: https://symfony.com/doc/current/security/form_login_setup.html

, чтобы построить мою форму, и она отображается нормально, у меня есть пользователь, созданный в моей таблице, и использующий его имя пользователя и пароль для входа в систему, но перенаправленный на пустую страницу, но я настроил его на /dashboard

мой security.yaml

encoders:
    App\Entity\User: bcrypt
providers:
    in_memory: { memory: ~ }
    user_provider:
        entity:
            class: App\Entity\User
            property: username
firewalls:
    dev:
        pattern: ^/(_(profiler|wdt)|css|images|js)/
        security: false
    main:
        anonymous: ~
        http_basic: ~
        provider:   user_provider
        form_login:
            login_path: login
            check_path: login
            default_target_path: /dashboard

Я даже пытался использовать скрытый _target ввод:

<input type="hidden" name="_target_path" value="{{ path('dashboard') }}" />

LoginController.php

<?php
    namespace App\Controller;

    use Symfony\Bundle\FrameworkBundle\Controller\Controller;
    use Symfony\Component\HttpFoundation\Request;
    use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;

    class LoginController extends Controller
    {
        public function login(Request $request, AuthenticationUtils $authenticationUtils)
        {
            $error    = $authenticationUtils->getLastAuthenticationError();
            $lastUser = $authenticationUtils->getLastUsername();

            return $this->render('login/form.html.twig', array('last_username' => $lastUser, 'error' => $error));
        }
    }

полный код базы: https://github.com/BPSBiro/symfony-forms-errors

, но он просто перенаправляет на /login как пустую страницу.Я знаю, что это не ошибка (учетные данные мудры), потому что, если я набираю gibberish в обоих полях, он возвращается к /login с формой и сообщением об ошибке (неверные учетные данные).

Как мне перенаправить после успеха формы?

Ответы [ 2 ]

0 голосов
/ 24 мая 2018

Итак, я сбил ваш github и запустил его без изменений.Создал пользователя, а затем попытался войти.Получено исключение, указывающее на App \ Entity \ User :: serialize.У вас возникла небольшая проблема:

public function serialize()
{
    # causes infinite nesting
    # return $this->serialize(array($this->id, $this->username, $this->password));

    # the fix
    return serialize(array($this->id, $this->username, $this->password));
}

Загадка в том, почему вы получили пустую страницу вместо исключения.Я использовал встроенный сервер для тестирования:

bin/console server:start

Я предполагаю, что ваша конфигурация Apache фактически работает в рабочем режиме, который подавляет ваши ошибки.

0 голосов
/ 24 мая 2018

Почему вы сохраняете http_basic: ~, если используете традиционную форму входа?Пожалуйста, удалите это и попробуйте снова

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...