2012-02-27 116 views
0

桌面應用程序與運行在symfony2上的我的網站進行交互,並需要json響應,從登錄成功/失敗開始。使用http_basic和提供者,如果登錄是正確的一切正常,但我不能發送JSON響應。 如果登錄不正確,它將重新提示用戶名和密碼對話框。如何停止在第一次失敗的嘗試和發送JSON響應json中的Symfony2登錄/註銷響應

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

security.yml

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;博士 我想在登錄時使用json進行響應。

回答

2

從外觀上看,您正在使用FOS用戶包來處理您的身份驗證。如果是這種情況,您將需要超載FOS安全控制器登錄操作。改變那裏的邏輯來發送失敗時的差異響應,而不僅僅是渲染錯誤的視圖。您還需要自定義登錄路由。東西的效果:

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

注意_format:JSON這將返回你的回答是「應用/ JSON」你仍然需要json_encode返回