私はAWS上にある既に作成された認証アクティブリポジトリに1つのログインWebインターフェイスを接続しようとしています。PHPでのcURLの処理
{
"userName" : "Victor",
"userPassword" : "pwd123"
}
をそして、それは正常に動作し、私は私のリポジトリから正しい答えを受け取る:私は、私はこのようなJSONのアプリケーションのための生のテンプレートを使用して、ポストマンを使用してそれをやって試してみましたが、その上で新しいです。しかし、私はそれを行う私のPHPプロジェクトを使用していると、私は同じ正確なデータでフォームを記入、私はステータスを受け取る:403メッセージ:間違ったユーザー名またはパスワード。
ポストマン・コードは、私にCURLOPT_POSTFIELDSため、そのソリューション提供:
CURLOPT_POSTFIELDS => "{\n\t\"userName\" : \"Victor\",\n\t\"userPassword\" : \"pwd123\"\n}",
をしかし、私はあなたが表示されますように、私はそれらを変更する形でこのフィールドを入力する必要があります。ここで
は、私が使用していたコードは、私は任意の助け:)
public function loginAction(Request $request)
{
$twigParams=array();
$DTO = new LoginDTO($request, $this->container, null);
$form = $DTO->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$upass = $DTO->getUserPass();
$uname = $DTO->getUserName();
$curl = curl_init();
$fields=array("userName"=> $uname, "userPassword"=> $upass);
curl_setopt_array($curl, array(
CURLOPT_PORT => "80",
CURLOPT_URL => "http://wt-services-internal-appl-blablabla..",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => $fields ,
CURLOPT_HTTPHEADER => array(
"cache-control: no-cache",
"content-type: application",
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$twigParams["form"]=$form->createView();
return $this->render('auth/login.html.twig', $twigParams);
}
私の認証リポジトリでは、JSON形式のアクセスデータがあり、JSON形式でデータを送信していないことに気が付いたので、正しく入力してください: $ fields = array( "userName" => $ uname、 "userPassword" => $ upass); $ fields = json_encode($ fields); そして私はその配列をCURLOPT_POSTFIELDSに入れ、CURLOPT_HTTPHEADERの "content-type:application/json"の "content-type:application"を変更します。とにかく、ありがとう、コーディングを続けてください –
代わりにこのコメントを回答として書き込み、それを受け入れます。それはあなたに少しの評判をもたらし、他の開発者にとってもその答えを見やすくするでしょう。 – Ray