OAuth2サーバーからaccess_tokenを取得するときに問題が発生しました。私は、access_tokenはを取得するためにPHPのカールを使用していますが、それは失敗し、返します。PHPのcurlでaccess_tokenを取得するOAuth2 return error: "invalid_client"
curl -d "client_id=f3d259ddd3ed8ff3843839b&client_secret=4c7f6f8fa93d59c45502c0ae8c4a95b&redirect_uri=http://application.dev/oauth/handle&grant_type=authorization_code&code=rZCQQBXVSQqKi2IRro1gYkSsRhyUcLsNODACjwPw" http://oauth-server.dev/oauth/access_token
それは成功と返す:私は、コマンドプロンプトからカールを使用する場合
error: "invalid_client",
error_description: "Client authentication failed."
奇妙で、ありますaccess_tokenは:
"access_token":"fI7APDRZygrsF1BiegAQCS1yUT8vnm1LgD5bIu2U",
"token_type":"Bearer",
"expires_in":3600
私はLaravel 5.2を使用して、ここaccess_tokenは取得するにはOAuthのサーバから処理するために、私のコードですよ:
public function getOAuthHandle(Request $request){
$url = 'http://oauth-server.dev/oauth/access_token';
$code = $request->code;
$client_id = 'f3d259ddd3ed8ff3843839b';
$client_secret = '4c7f6f8fa93d59c45502c0ae8c4a95b';
$redirect_uri = 'http://application.dev/oauth/handle';
$clienttoken_post = array(
"code" => $code,
"client_id" => $client_id,
"client_secret" => $client_secret,
"redirect_uri" => $redirect_uri,
"grant_type" => "authorization_code"
);
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $clienttoken_post);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$json_response = curl_exec($curl);
curl_close($curl);
return $json_response;
}
インターネットとstackoverflowから別のスクリプトを試してApacheとPHPを再起動しましたが、それでも動作しません。
この問題を解決する方法はありますか?私は何を確認すべきですか?
ご協力いただきありがとうございます。
あなたはcurlヘッダーにgrant_typeを追加しようとしましたか? –
いいえ、私はそれを試していません。どうやってするか? –