2012-02-27 5 views
0

デスクトップアプリケーションはsymfony2上で実行されている私のウェブサイトと対話し、ログインの成功/失敗から始めてjsonで応答する必要があります。ログインが正しい場合、http_basicとプロバイダを使用するとすべて正常に動作しますが、私はjson応答を送信できません。 ログインが間違っていると、ユーザー名とパスワードのダイアログが再度表示されます。どのように私は、最初の失敗の試みで停止し、jsonでのsymfony2のログイン/ログアウトの応答

app: 
      pattern: ^/app.* 
      logout: true 
      security: true 
      http_basic:    
       provider: webservice 
providers: 
     fos_userbundle: 
      id: fos_user.user_manager 

     webservice: 
      id: my_provider 

config.yml

my_provider:  
     parent: doctrine.odm.mongodb.security.user.provider 
     arguments: [ Se\PPBundle\Document\User, username] 

TL

{ 
'message':'invalid password/username' 
} 

のsecurity.yml JSONレスポンス送信することができます。DRを 私はログイン時にjsonと応答したいと思います。

答えて

2

FOS Userバンドルを使用して認証を処理しています。このような場合は、FOS Securityコントローラのログイン操作を過負荷にする必要があります。エラーが発生したビューをレンダリングするのではなく、エラー応答を送信するためにそこのロジックを変更します。また、ログインのルーティングをカスタマイズする必要があります。効果に何か:

_login: 
    pattern: /login 
    defaults: {_controller: "FOSUserBundle:Security:login", _format:json} 

注_format:JSONそれでも復帰

をjson_encodeする必要があります「アプリケーション/ jsonの」として、これはあなたの応答を返します。