delete_cookies
安全配置文件中有一个:http : //symfony.com/doc/current/reference/configuration/security.html
我已remember_me
启用。一切正常,除非用户转到“注销”链接(直接从网址栏),我希望symfony删除REMEMBERME
cookie。我该如何实现?我想念什么吗?
当我转到url时/app/logout
,可以看到仍然有REMEMBERME
cookie的chrome开发工具。
这是我的security.yml文件:
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,]);
}
}
我发现,如果您直接将注销网址放入网址栏中,则该方法无效。用户必须单击注销才能工作。
创建一个链接<a href="{{url('logout')}}">Logout</a>
并单击它即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句