在json中的Symfony2登录/注销响应

时间:2012-02-27 18:31:29

标签: php mongodb symfony

桌面应用程序与我在symfony2上运行的网站进行交互,需要在json中进行响应,从登录成功/失败开始。如果登录正确,使用http_basic和提供程序一切正常,但我无法发送json响应。 如果登录不正确,则会重新提示用户名和密码对话框。如何在第一次失败尝试时停止并发送json响应

{
'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。

1 个答案:

答案 0 :(得分:2)

从它的外观来看,您正在使用FOS用户包来处理您的身份验证。如果是这种情况,您将需要重载FOS安全控制器登录操作。更改其中的逻辑以在失败时发送差异响应,而不是仅使用错误呈现视图。您还需要自定义登录路由。有什么影响:

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

注意_format:json这会将你的回复作为“application / json”返回,你仍然需要json_encode返回