如果一切都失敗(或變成過度疼痛處理),你總是可以簡單介紹一下中介的路線,做你的邏輯在那裏。
也就是說,創建一個動作,其唯一目的是根據需要的邏輯重定向用戶,然後將其作爲目標路徑放入security.yml
防火牆中。
security:
firewalls:
main:
pattern: ^/
anonymous: ~
form_login:
login_path: login
check_path: login
default_target_path: login_success
always_use_default_target_path: true
logout:
path: logout
凡登錄會是這樣的:
class AuthenticationController extends Controller
{
/**
* @Route("/login", name="login")
* @Route("/logout", name="logout")
*/
public function loginAction(Request $request)
{
// Standard login stuff here
}
/**
* @Route("/login_success", name="login_success")
*/
public function postLoginRedirectAction()
{
if (/* user needs to see location A */) {
return $this->redirectToRoute("location_a");
} else if (/* user needs to see location B */) {
return $this->redirectToRoute("location_b");
} else {
return $this->redirectToRoute("index");
}
}
}
您可以在表單中重定向有了這樣的自定義輸入:http://symfony.com/doc/current/security/form_login。 html – davidbonachera
這是我推測你知道的完全相同的鏈接... –
哎呀..一種方法可能是使用會話/ cookie和重定向,如果它是空的。 http://symfony.com/doc/current/components/http_foundation.html#setting-cookies/ http://api.symfony.com/3.2/Symfony/Component/HttpFoundation/Cookie.html – davidbonachera