记住我cookie会被删除符号2


remember me cookies gets deleted symfony2

我正在尝试使用这里描述的默认机制配置symfony的记住我功能;但无法实现。

名为REMEMBERME的Cookie已创建,但已设置为删除,其过期日期为1970年。这就是为什么我想记住我的功能不起作用。然而,当我在security.yml中使用(always_remember_me:true)时,代码运行良好,但不符合我的目的。使用(always_remember_me:true),即使用户没有在UI中选中remember me复选框,也会创建cookie。

非常感谢任何帮助

我使用的是2.3.7版

这是我完整的安全yml文件:

security:
    firewalls:
        main:
            pattern:    ^/
            anonymous: ~
            remember_me:
                key:      "%secret%"
                lifetime: 31536000 # a year
                domain:   ~ 
                path: /
                remember_me_parameter: _remember_me
                #always_remember_me: true
            form_login:
                login_path:  _my_login
                check_path:  _my_login_check
                always_use_default_target_path: true
                default_target_path: /out/homepage
                remember_me:    true
            logout:
                path:   _my_logout
                target: _my_login
    access_control:
        - { path: ^/admin, roles: ROLE_ADMIN }
        - { path: ^/login$, roles: IS_AUTHENTICATED_ANONYMOUSLY }
        - { path: ^/, roles: IS_AUTHENTICATED_REMEMBERED  }
    providers:
        chain_provider:
          chain:
            providers: [in_memory, user_db]
        in_memory:
            memory:
                users:
                    user:  { password: user, roles: 'ROLE_USER' }
                    admin: { password: admin, roles: ['ROLE_ADMIN', 'ROLE_USER'] }
        user_db:
          entity: {class: ProjectName'StoreBundle'Entity'User, property: username}
    encoders:
        ProjectName'StoreBundle'Entity'User: 
                algorithm: sha1
                iterations: 1
                encode_as_base64: false
        Symfony'Component'Security'Core'User'User: plaintext

LoginController.php

class LoginController extends Controller
{
    /**
     * @Route("/login", name="_my_login")
     * @Template()
     */
    public function loginAction()
    {
        $request = $this->getRequest();
        $session = $request->getSession();
        // get the login error if there is one
        if ($request->attributes->has(SecurityContext::AUTHENTICATION_ERROR)) {
            $error = $request->attributes->get(
                SecurityContext::AUTHENTICATION_ERROR
            );
        } else {
            $error = $session->get(SecurityContext::AUTHENTICATION_ERROR);
            $session->remove(SecurityContext::AUTHENTICATION_ERROR);
        }
         return  array(
                // last username entered by the user
                'last_username' => $session->get(SecurityContext::LAST_USERNAME),
                'error'         => $error,
            );
    }
    /**
     * @Route("/login_check", name="_my_login_check")
     */
    public function loginCheckAction()
    {
    }
我在input标记中添加了value属性。移除后,它暂时有效。:)
<input type="checkbox" id="remember_me" name="_remember_me" checked /> Remember me

我想复选框的名称不正确。它应该将"name"属性设置为"_remember_me",以实现神奇的效果。你能发布表单模板的内容吗?