FOSUserBundle只能登录一次

时间:2016-09-14 08:43:16

标签: session login fosuserbundle

我正在尝试将FOSUserBundle与Symfony 3.0.9一起使用。

在完成教程here后,我昨天能够注册用户并使用它登录。问题是我今天早上无法使用相同的凭据登录。经过一些测试后,我注意到当我关闭窗口时,无法与用户一起登录。

所以我必须从数据库中删除用户并创建一个新用户。 任何人都可以帮我解决这个问题吗? 当然,用户应该能够登录,注销并关闭brwoser而无需注销。

My SecurityController.php:

class SecurityController extends Controller
{
    /**
     * @Route("/login", name="login")
     */
    public function loginAction(Request $request)
    {

        $authenticationUtils = $this->get('security.authentication_utils');

        // get the login error if there is one
        $error = $authenticationUtils->getLastAuthenticationError();

        // last username entered by the user
        $lastUsername = $authenticationUtils->getLastUsername();

        return $this->render(
            'security/login.html.twig',
            array(
                // last username entered by the user
                'last_username' => $lastUsername,
                'error'         => $error,
            )
        );
    }
}

security.yml:

# To get started with security, check out the documentation:
# http://symfony.com/doc/current/book/security.html
security:
    encoders:
        FOS\UserBundle\Model\UserInterface: bcrypt

    role_hierarchy:
        ROLE_ADMIN:       ROLE_USER
        ROLE_SUPER_ADMIN: ROLE_ADMIN

    providers:
        fos_userbundle:
            id: fos_user.user_provider.username

    firewalls:
        # disables authentication for assets and the profiler, adapt it according to your needs
        dev:
            pattern: ^/(_(profiler|wdt)|css|images|js)/
            security: false

        main:
            pattern: ^/
            form_login:
                provider: fos_userbundle
                csrf_token_generator: security.csrf.token_manager

            logout:       true
            anonymous:    true

    access_control:
        - { path: ^/login$, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/admin/, role: ROLE_ADMIN }

至少我在数据库中的用户实体: enter image description here

1 个答案:

答案 0 :(得分:0)

问题是会话是由/ register设置的,而我的/ login从未工作过。 使用标准的FOSUser登录,它可以正常工作。