0

如果您想使用仅包含用户名和密码字段的自定义表单登录用户怎么办?

正如您在 Symfony2 上所知道的那样,此登录表单是由框架生成的,它们将信息发布到处理所有事情的网关......我想将凭据发布到我自己制作的 php 脚本中,在那里我得到了 POST 变量,然后创建会话(就像您在无框架解决方案中所做的那样)

请不要对良好做法做出回答/评论,这只是作为一个实验。

目前我有一个 POST 到 php 脚本的 html 表单。当然还有一个在 Symfony 中创建的包含用户名、盐和密码的表。如何检查凭据以及如何创建会话?

4

1 回答 1

0

好吧,要做到这一点,“正确”的方式需要设置您自己的身份验证提供程序。坦率地说,尽管您会对安全系统有很好的了解,但这是相当痛苦的。

食谱可以提供帮助: http ://symfony.com/doc/current/cookbook/security/custom_authentication_provider.html

考虑从克隆开始:Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\FormLoginFactory。或者至少用它作为一个开始的例子。

我自己没有尝试过,但我认为您可以通过设置参数来为您提供自己的身份验证类:

<parameter key="security.authentication.provider.dao.class">Symfony\Component\Security\Core\Authentication\Provider\DaoAuthenticationProvider</parameter>

如果它有效,那么制作一个完整的提供商会更容易。

最后,您可以像我第一次那样做,然后发布到常规控制器并自己处理。您必须硬编码防火墙名称,否则它很简单。其他几个线程,其中包含有关如何执行此操作的详细信息。每个版本的框架工作的细节往往会有所变化,因此查看框架类可能是您最好的选择。我的代码来自 S2.0,所以我不会发布它。

于 2013-06-12T16:21:36.200 回答