Не удается получить запрашиваемую сессию с PHP cURL в Laravel 5.5 - PullRequest
0 голосов
/ 03 декабря 2018

У меня проблема с Laravel 5.5.У меня есть веб-приложение, которое действует как шлюз.Мой партнер может запросить к моему шлюзу через cURL или HTTP.

  1. Первый шаг, когда мой партнер запрашивает (через cURL) к моему шлюзу передачу основных данных и учетных данных.Затем я проверяю эти данные;если данные верны, я буду хранить данные запроса в сеансе.А затем ответьте обратно сессионным ключом.
  2. Когда партнер получит сессионный ключ, он перенаправит и передаст сессионный ключ обратно на мою веб-страницу, чтобы ввести более подробную информацию на основе основных данных, которые они отправляют в cURL в прошлый раз.Но когда они перенаправляют на мою веб-страницу через браузер, я не могу вернуть сеанс обратно.Кажется, сессионный ключ, который я использую, когда запрос cURL и перенаправление браузером различаются.

Но когда я пытаюсь запросить подтверждение основных данных и учетных данных в почтальоне и вернуть сеанс почтальоном, я могу получить его обратно.

Мой пример тестирования с использованием сеанса исправленияключ:

TestingController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Redirect;
use Illuminate\Support\Facades\Hash;
use Session;

class TestingController extends Controller
{
    public function test1() {
        $testing = "Testing";
        Session::put("ABC", $testing);
        return "Key: ABC, Value: $testing";
    }

    public function test2() {
        $testing = Session::get("ABC");
            return "Key: ABC, Value: $testing";
        }
    }
}

web.php (маршрут)

Route::post('/test1', 'TestingController@test1');
Route::get('/test2', 'TestingController@test2');

Пример запроса от php

<?php

$authenticate = "http://localhost/test1";
$redirect = "http://localhost/test2";
$ref_gen = date("Ymdhisa");
if($_POST['submit']) {
    $param = array(
        'username'=> 'testing',
        'secrete' => '85a731b9d40388ad0a998d84e7e9de958c2',
        'order_referenceno' => $ref_gen,
    );
    $content = json_encode($param);
    $curl = curl_init($authenticate);
    curl_setopt($curl, CURLOPT_HEADER, false);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array("Content-type:application/json"));
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $content);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
    $response = curl_exec($curl);
    var_dump("response:".$response);
    if ($response === FALSE) {
        echo "cURL Error: " . curl_error($curl);
    } else {
        header("Location: ".$redirect."?session=$response");
    }
}

?>
...