2012-02-27 5 views
0

데스크톱 응용 프로그램은 symfony2에서 실행되는 웹 사이트와 상호 작용하며 로그인 성공/실패로 시작하여 json에서 응답해야합니다. 로그인이 올바른 경우 http_basic 및 공급자를 사용하면 정상적으로 작동하지만 Im은 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 응답 보낼 수 박사을 로그인시 json으로 응답하고 싶습니다.

답변

2

FOS User 번들을 사용하여 인증을 처리합니다. 이 경우 FOS 보안 컨트롤러 로그인 작업에 과부하가 필요합니다. 오류가있는 뷰를 렌더링하는 대신 오류 응답을 보내도록 논리를 변경하십시오. 또한 로그인에 대한 라우팅을 사용자 정의해야합니다.

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

참고 _format :의 효과에 뭔가이 "응용 프로그램/JSON"로 응답을 반환합니다 JSON은 여전히 ​​수익을로 json_encode해야합니다