从描述如何设置使用Symfony Security
组件的登录表单的文档https://symfony.com/doc/current/security/form_login_setup.html,我很惊讶看不到使用Symfony Form
组件。
他们以纯HTML形式呈现表单,表单由某些魔术处理,由安全组件处理(并打破应该处理HTTP请求的Controller的概念)。
是否有特殊原因不在此处使用表单类型? (还有一个控制器)。
答案 0 :(得分:1)
Symfony安全性不使用表单,因为表单适用于提交的数据,并且大多数身份验证方法都是使用表单无法访问的HTTP标头完成的。
安全组件有两个角色:身份验证和授权。你在这个问题中提到了身份验证。
身份验证它比仅仅处理控制器中的表单更复杂。
只有一种身份验证方法意味着在symfony中提交表单:UsernamePasswordToken,甚至可以通过标头作为http基本/摘要身份验证提交。
登录/身份验证/授权的其他方式是通过记住我的令牌,会话,oauth令牌,Json Web令牌,SAML等。
更灵活的方法是只使用基于事件的身份验证系统,尽管这会增加使用Symfony Guard在Symfony 3中解决的系统的复杂性。
答案 1 :(得分:0)