我一直在 Symfony 2.8 中的服务器上工作,构建了一个以 camelCase 样式返回 json 对象的 rest api,现在的问题是,当我集成 OauthServer 捆绑包时,它会引发这个错误Invalid grant_type parameter or parameter missing"
,我知道这是因为我正在使用array_normalizer: fos_rest.normalizer.camel_keys
body我的fos_rest
配置中的监听器。这是我的代码configuration.yml
:
fos_rest:
#other listeners#
body_listener:
array_normalizer: fos_rest.normalizer.camel_keys
zone:
- { path: ^/api }
这里是我的 Oauth 配置security.yml
:
firewalls:
oauth_token:
pattern: ^/oauth/v2/token
security: false
api:
pattern: ^/api
fos_oauth: true
stateless: true
anonymous: false
我发现我不是第一个发生这种情况的人,并且zone
添加了该属性来缓解这种情况,但在我的情况下,它只适用于 下的所有内容,^/api
因为当我更改模式时,它会按预期停止使用侦听器但是当我调用^/oauth/v2/token
路径时,它似乎忽略了zone
给定的路径。
为了检索我的令牌,我使用了下一个 POST 请求:
{
grant_type= "password"
client_id= "clientId"
client_secret= "clientSecret"
username= "user"
password= "password"
}
我想澄清一下,如果我停用侦听器,我会成功获得令牌,但我的应用程序的其余部分会停止工作,因为它在任何地方都使用 camelCase,我知道一旦替代方法是在客户端序列化我的数据,但它是目前很复杂。
我究竟做错了什么?我无法弄清楚我错过了什么。