У меня проблема с Laravel 5.5.У меня есть веб-приложение, которое действует как шлюз.Мой партнер может запросить к моему шлюзу через cURL или HTTP.
- Первый шаг, когда мой партнер запрашивает (через cURL) к моему шлюзу передачу основных данных и учетных данных.Затем я проверяю эти данные;если данные верны, я буду хранить данные запроса в сеансе.А затем ответьте обратно сессионным ключом.
- Когда партнер получит сессионный ключ, он перенаправит и передаст сессионный ключ обратно на мою веб-страницу, чтобы ввести более подробную информацию на основе основных данных, которые они отправляют в 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");
}
}
?>