2017-06-15 21 views
0

私はSilex official websiteのチュートリアルに従おうとしていますが、オーセンティケータがサービスとして登録されているときにエラーが発生します。GuardとSilexカスタム認証

Catchable fatal error: Argument 1 passed to App\Security\TokenAuthenticator::__construct() must be an instance of App\Security\EncoderFactoryInterface, instance of Symfony\Component\Security\Core\Encoder\EncoderFactory given, called in C:\wamp\www\api\src\app.php on line 41 and defined in C:\wamp\www\api\src\App\Security\TokenAuthenticator.php on line 17

はここ

$app = new Silex\Application(['debug' => true]); 

$app['security.firewalls'] = array(
    'main' => array(
     'guard' => array(
      'authenticators' => array(
       'app.token_authenticator' 
      ), 

      // Using more than 1 authenticator, you must specify 
      // which one is used as entry point. 
      // 'entry_point' => 'app.token_authenticator', 
     ), 
     // configure where your users come from. Hardcode them, or load them from somewhere 
     // http://silex.sensiolabs.org/doc/providers/security.html#defining-a-custom-user-provider 
     'users' => array(
     //raw password = foo 
      'test' => array('ROLE_USER', '$2y$10$3i9/lVd8UOFIJ6PAMFt8gu3/r5g0qeCJvoSlLCsvMTythye19F77a'), 
     ), 
     // 'anonymous' => true 
    ), 
); 

$app['app.token_authenticator'] = function ($app) { 
    return new App\Security\TokenAuthenticator($app['security.encoder_factory']); 
}; 

$app->register(new Silex\Provider\SecurityServiceProvider()); 

return $app; 

TokenAuthenticatorは例と同じである私のapp.phpです。 App\Security\EncoderFactoryInterfaceを実装する引数を使用してこのサービスを設定するにはどうすればよいですか?私を助けてくれますか?

+0

をだけで簡単にショット、あなたが '' 'あなたのTokenAuthenticatorの冒頭でのSymfony \コンポーネント\セキュリティ\コア\エンコーダ\ EncoderFactoryInterface'''を使っ追加しようとすることができます.phpファイル?このインターフェイスのネームスペースが見つからないようです – mTorres

答えて

0

use文が欠落している:

use Symfony\Component\Security\Core\Encoder\EncoderFactoryInterface; 
関連する問題