簡體   English   中英

Symfony2 FOSOAuthServerBundle授予類型密碼需要客戶端密碼

[英]Symfony2 FOSOAuthServerBundle grant type password requires client secret

我正在集成FOSOAuthServerBundle,以處理從移動應用到Symfony2后台的登錄。 我已經按照此答案的說明進行操作,但是由於我從未使用過OAuth2 ,因此有時會有點迷路。

我嘗試使用“密碼” grant_type登錄,但是由於某些原因,除非我將client_secret指定為GET參數,否則它將無法正常工作。 我真的應該嗎?

這是我的要求:

http://myserv.local/app_dev.php/oauth/v2/token ?client_id=1_4up4x3hpaask4g0sok0so8sg00gk48c44cc0wkwwsg8048wcog &grant_type=password &username=test@test.com &password=somepassword

除非添加了client_secret參數,否則它將返回此響應:

{"error":"invalid_client","error_description":"The client credentials are invalid"}

是的,您應該包括客戶機密。 發出此請求后,您將獲得一個access_token,該令牌可與以后的每個請求一起使用,這樣,在access_token到期之前,您無需再次使用憑據或客戶端信息。 而且,當令牌過期時,即使這樣,您也無需再次使用用戶憑據,您可以使用refresh_token以及客戶端ID和密碼來獲取新的access_token。 因此,您的初始請求應如下所示:

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

並且在響應中,您將獲得access_token,可以像這樣使用:

http://localhost/api/users?access_token=[ACCESS_TOKEN]

希望這可以為您澄清更多。

當您使用唯一允許的授予類型“ password”創建一個新客戶端時,這應該不是客戶端機密是公開的安全問題,並且沒有人可以在client_credential授予中使用它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM