所以我正在尝试创建一个新的 Silex 应用程序并使用包含的安全包。为简单起见,我将使用基本的密码编码。
根据 Silex 文档http://silex.sensiolabs.org/doc/providers/security.html,我创建了一个自定义用户提供程序。但是,此用户界面似乎没有使用默认密码编码。
我可以成功获取密码
$password = $app['security.encoder.digest']->encodePassword('foo');
但是,当我使用示例时
// find the encoder for a UserInterface instance
$encoder = $app['security.encoder_factory']->getEncoder($user);
// compute the encoded password for foo
$password = $encoder->encodePassword('foo', $user->getSalt());
我明白了
RuntimeException:没有为帐户配置编码器
在 symfony2 中,我会使用类似下面的东西
encoders:
somename:
class: Acme\DemoBundle\Entity\User
Acme\DemoBundle\Entity\User: sha512
Acme\DemoBundle\Entity\User: plaintext
Acme\DemoBundle\Entity\User:
algorithm: sha512
encode_as_base64: true
iterations: 5000
Acme\DemoBundle\Entity\User:
id: my.custom.encoder.service.id
但这里似乎并非如此。我似乎找不到任何类型的 setEncoder 方法,所以我有点难过。