我有一個Symfony2 Web應用程序,它需要用戶登錄執行此類有用的操作。在Symfony中,您可以將鏈接指向登錄頁面,然後框架處理的安全性完成剩下的工作。您必須在security.yml配置文件中定義登錄頁面的路由。Symfony2:從每個頁面登錄
我想知道,如果是有可能和如何讓用戶登錄網站的每個頁面(例如,通過將在頁面頂部的登錄表單)。這將節省頁面加載並且不會打擾用戶。
在此先感謝
我有一個Symfony2 Web應用程序,它需要用戶登錄執行此類有用的操作。在Symfony中,您可以將鏈接指向登錄頁面,然後框架處理的安全性完成剩下的工作。您必須在security.yml配置文件中定義登錄頁面的路由。Symfony2:從每個頁面登錄
我想知道,如果是有可能和如何讓用戶登錄網站的每個頁面(例如,通過將在頁面頂部的登錄表單)。這將節省頁面加載並且不會打擾用戶。
在此先感謝
最好的辦法是讓所有的模板擴展一個基本模板。即,在所有的枝條模板有類似
{% extends 'YourBundle::base.html.twig' %}
在base.html.twig呈現控制器,它呈現的登錄表單。要做到這一點,在base.html.twig做這樣的事情:
{% render "YourBundle:Security:loginForm" %}
然後創建一個控制器動作,這樣的:在你的loginForm.html.twig
public function loginFormAction()
{
$loginForm = //create the form
return $this->render('YourBundle:Security:loginForm.html.twig', array(
'form' => $loginForm,
}
}
最後呈現形式。
Symfony2防火牆在您在security.yml中定義的登錄操作中使用_username, _password, _remember_me and _target_path
。
你可以在你想要的每個頁面上(例如在頁眉中)放置一個表單(使用formBuilder,formType或直接到你的模板中的字段,由你決定),使用這些表單名稱並將它們發送給你登錄操作。 Symfony會自動處理,併爲您休息!
這不提供這樣的安全問題嗎? – JeanValjean 2012-08-12 10:39:26
?對不起,我不明白你的意思? – 2012-08-12 10:58:19
我只想知道在做解決方案時是否存在這樣的安全隱患。我猜不是,因爲我正在渲染一個應該安全的控制器。但是,如果我想使用安全連接(https)登錄頁面,則還必須爲呈現登錄表單的所有頁面使用安全連接。不是嗎? – JeanValjean 2012-08-12 11:03:23