我有一个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