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] 

然後你不有擔心身體串行。