Symfony 2 Guard组件和正常的登录表单

时间:2015-12-13 11:09:14

标签: php symfony

我正在尝试使用新的Guard组件。我发现的唯一信息是official docs

文档中的示例使用Guard来验证API的请求。

根据文档,它也可以与普通登录​​表单一起使用,我想做什么。

我复制了这个例子,取而代之的是两个函数:

public function getCredentials(Request $request)
{
    return array(
        'username' => $request->request->get('_username'),
        'password' => $request->request->get('_password'),
    );
}

public function getUser($credentials, UserProviderInterface $userProvider)
{
    $email = $credentials['username'];

    $user = $this->em->getRepository('Entity\User')
        ->findOneBy(array('email' => $email));

    return $user;
}

security.yml:

providers:
    user_provider:
        entity:
            class: Entity\User
            property: email

firewalls:
    user:
        switch_user: { role: ROLE_ADMIN }
        pattern:  ^/
        anonymous: ~
        provider: user_provider
        form_login:
            check_path: login_check
            login_path: login
        logout:
            path:   logout
            target: login
        guard:
            authenticators:
                - app.ldap.authenticator
        stateless: false

问题是Symfony没有坚持我的会话。

我只有在为每个请求发送数据表单时才会登录。是否可以像普通登录表单一样发送此数据?

1 个答案:

答案 0 :(得分:1)

I found it. I had in security.yml

always_authenticate_before_granting:  true

copied from another project :). I deleted it and now it works