在硅石使用实体SecurityUserProvider,我的身份验证的工作时,我用一个简单的UserProvider与学说ORM(只是DBAL):上的Silex
$app['security.firewalls']=array(
'app_secure' => array(
'pattern' => '^/app/',
'form' => array(
'login_path' => '/login',
'check_path' => '/app/login_check',
'always_use_default_target_path' => true,
'default_target_path' => '/app/'
),
'logout' => array(
'logout_path' => '/app/logout',
'target_url' => "/login",
'invalidate_session'=> "true"
),
'users' => $app->share(function() use ($app) {
return new App\Service\UserProvider($app['db']);
})
),
);
在Silex的文档,我已阅读:
如果您使用Doctrine ORM,则Symfony为Doctrine提供了一个用户提供程序类,可以从您的实体加载用户。
于是我尝试用实体合作(与dflydev学说ORM服务提供商),但我找不到如何配置我的防火墙:
'users' => $app->share(function() use ($app) {
$em = $app['orm.em'];
return $em->getRepository('MyProject\Entity\User');
})
该解决方案返回我一个错误:attempts a UserProvider
。
我的一个来源:https://groups.google.com/forum/#!topic/silex-php/k-0X-BdG6Zw
我做错了什么?
感谢
您的回答和这(法语)解决了我的问题: http://prof.bpesquet.fr/tutoriel/developpement-php-moderne/#toc_51 –