桌面应用程序与我在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。
答案 0 :(得分:2)
从它的外观来看,您正在使用FOS用户包来处理您的身份验证。如果是这种情况,您将需要重载FOS安全控制器登录操作。更改其中的逻辑以在失败时发送差异响应,而不是仅使用错误呈现视图。您还需要自定义登录路由。有什么影响:
_login:
pattern: /login
defaults: {_controller: "FOSUserBundle:Security:login", _format:json}
注意_format:json这会将你的回复作为“application / json”返回,你仍然需要json_encode返回