对于登录成功,有一个参数use_referer: true.对于登录失败只有failure_path,这不是我正在寻找的.
第二件事:如何做到并传递错误信息?
第三件事:退出后如何返回推荐人?
我只是尝试了几个小时来弄清楚如何在注销操作后使flash消息正常工作.
security.yml
login:
pattern: ^/login$
security: false
secured_area:
pattern: ^/
form_login:
check_path: /check
login_path: /login
failure_handler: authentication_handler
logout:
path: /logout
success_handler: authentication_handler
Run Code Online (Sandbox Code Playgroud)
config.yml
services:
authentication_handler:
class: Project\LoginBundle\Handler\AuthenticationHandler
Run Code Online (Sandbox Code Playgroud)
AuthenticationHandler.php
class AuthenticationHandler implements AuthenticationFailureHandlerInterface, LogoutSuccessHandlerInterface
{
public function onAuthenticationFailure(Request $request, AuthenticationException $exception)
{
$referer = $request->headers->get('referer');
$request->getSession()->setFlash('error', $exception->getMessage());
return new RedirectResponse($referer);
}
public function onLogoutSuccess(Request $request)
{
$referer = $request->headers->get('referer');
$request->getSession()->setFlash('success', 'Wylogowano');
return new RedirectResponse($referer);
}
}
Run Code Online (Sandbox Code Playgroud)
登录后查看你好
{% extends "ProjectCMSBundle:Secured:layout.html.twig" %}
{% block title "Hello " ~ name %}
{% block …Run Code Online (Sandbox Code Playgroud)