为什么Symfony不使用表单来处理安全组件登录?

问题描述 投票:0回答:2

从描述如何设置与https://symfony.com/doc/current/security/form_login_setup.html组件一起使用的登录表单的文档Symfony Security,我很惊讶没有看到使用Symfony Form组件。

它们以纯HTML形式呈现表单,表单由某些魔术处理,由安全组件处理(并打破应该处理HTTP请求的Controller的概念)。

是否有特殊原因不在此处使用表单类型? (还有一个控制器)。

php symfony symfony-forms symfony-security
2个回答
1
投票

Symfony安全性不使用表单,因为表单与提交的数据一起使用,并且大多数身份验证方法是使用表单无权访问的HTTP标头完成的。

安全组件有两个角色:身份验证和授权。你在这个问题中提到了身份验证。

身份验证比在控制器中处理表单更复杂。

只有一种身份验证方法意味着在symfony中提交表单:UsernamePasswordToken,甚至可以通过标头作为http基本/摘要身份验证提交。

其他登录/认证/授权方式是通过记忆我的令牌,会话,oauth令牌,Json Web令牌,SAML等。

更灵活的方法是只使用基于事件的身份验证系统,尽管这增加了Symfony 3中使用Symfony Guard解决的系统的复杂性。

enter image description here

https://symfony.com/doc/2.0/book/security.html


0
投票

我终于编写了自己的处理Symfony表单的GuardAuthenticator(扩展了Symfony \ Component \ Security \ Guard \ Authenticator \ AbstractFormLoginAuthenticator):

Symfony form guard authenticator

这项工作就像一个魅力!并且设计团队可以轻松使用表单。

© www.soinside.com 2019 - 2024. All rights reserved.