0

我一直在Symfony 2.8中构建服务器,创建一个以camelCase风格返回json对象的休息api,现在的问题是,当我整合OauthServer包时,它会激活此错误Invalid grant_type parameter or parameter missing" ,我知道这是因为我在fos_rest配置中使用了array_normalizer: fos_rest.normalizer.camel_keys身体听众。这里我在configuration.yml代码:FOSOAuthServerBundle + FOSRestBundle + CamelCase =未验证

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,我知道一旦选择将序列化客户端中的数据,但目前它非常复杂。

我在做什么错?我无法弄清楚我错过了什么。

回答

1

的变通方法,您可以使用,而不是POSTGET这样

http://example.com/oauth/v2/token?client_id=[CLIENT_ID]&client_secret=[SECRET]&grant_type=password&username=[USERNAME]&password=[PASSWORD] 

然后你不有担心身体串行。