0

モバイルアプリから Symfony2 バックオフィスへのログインを処理するために FOSOAuthServerBundle を統合しています。この回答の指示に従いましたが、これまで使用したことがないためOAuth2、時々少し迷ってしまいます。

「パスワード」を使用してログインしようとしましたが、何らかの理由でパラメーターとしてgrant_type指定しないと機能しません。私は実際にすべきですか?client_secretGET

私のリクエストは次のようになります。

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"}

4

2 に答える 2

2

唯一許可された許可タイプ「パスワード」で新しいクライアントを作成する場合、クライアント シークレットが公開されていて、誰も client_credential 許可でそれを使用できないというセキュリティ上の問題にはなりません。

于 2014-11-14T13:09:33.903 に答える
2

はい、クライアント シークレットを含める必要があります。このリクエストを行うと、今後の各リクエストで使用できる 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]

うまくいけば、これでもう少し明確になります。

于 2014-11-12T17:01:21.237 に答える