我有一个自定义用户提供程序,我在其中从数据库检索密码。该密码基于text+username
。
在Symfony login_check
进程中,我希望密码字段等于此password field
中的输入文本+ username field
中的输入文本,而不仅仅是基于密码字段中的输入文本。
有办法吗?
简而言之,我想强制symfony检查用户提供程序中定义的密码是否等于_password
字段+ _username
字段
要做到这一点,您还需要正确设置自定义身份验证提供者。你可以查看这里的文档:
http://symfony.com/doc/current/security/custom_authentication_provider.html基本上是克隆默认的,并将您的更改添加到密码检查器。
你也可以按照自定义用户提供商文档的建议来完成它:
http://symfony.com/doc/current/security/custom_provider.html如果您的外部用户通过不同的方法添加了密码,那么您需要做更多的工作,以便Symfony正确地编码密码。这超出了本条目的范围,但将包括子类化MessageDigestPasswordEncoder和覆盖mergePasswordAndSalt方法。
似乎可以使用username字段作为某种形式的盐这样可能比编写完整的自定义身份验证更容易完成