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