dongqu4443 2014-11-12 19:10
浏览 65
已采纳

symfony删除时记住我的cookie

There is a delete_cookies in the security configuration file: http://symfony.com/doc/current/reference/configuration/security.html

I have remember_me enabled. Everything works fine except when an user goes to the 'logout' link (directly from the url bar), I want symfony to delete the REMEMBERME cookie. How can I achieve that? Am I missing something?

When I go to url /app/logout, I can see the chrome dev tools that I still have the REMEMBERME cookie.

This is my security.yml file:

firewalls:     
    app_secured:
        anonymous: ~
        switch_user: true
        pattern: ^(/$|/login$|/app/)
        form_login:
            login_path: login
            check_path: login_check
            csrf_provider: form.csrf_provider
            default_target_path: index
            always_use_default_target_path: true
        remember_me:
            key: "%secret%"
            lifetime: 2592000
            path: ~
            domain: ~
        logout:
            invalidate_session: true
            delete_cookies:
                REMEMBERME: { path: null, domain: null}
            path: logout
            target: login
access_control:
    - { path: ^/app/_sys/, roles: ROLE_NO_ACCESS }
    - { path: ^/app/, roles: ROLE_USER }
    - { path: ^/app/admin/, roles: ROLE_ADMIN }

Routing.yml

login:
    path:      /
    defaults:  { _controller: AppWebBundle:Login:login }
login_check:
    path: /login_check
logout:
    path: /app/logout

LoginController.php

/**
 * Login controller.
 * @Route("/")
 */
class LoginController extends Controller
{
    /**
     * Login page
     * @Route("/login", name="login2")
     */
    public function loginAction(Request $request){
        /** Reduced for simplicity, same code as: 
            http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form **/
        return $this->render('AppWebBundle:Default:login.html.twig', ['last_username' => $lastUsername,'error'=> $error,]);
    }
}
  • 写回答

2条回答 默认 最新

  • duanbei7005 2014-11-12 19:28
    关注

    I found out that it doesn't work if you put directly the logout url into the url bar. The user has to click logout in order to work.

    Creating a link <a href="{{url('logout')}}">Logout</a> and clicking it worked.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题