Я размещаю, интранет и управляю несколькими системами единого входа для внешних веб-сайтов. Мы всегда делали это через какую-то скрытую форму.
* ** 1003 тысяча два * Пример
<form method="post" action="example.php">
<input type="hidden" value="user" name="user" />
<input type="hidden" value="password" name="password" />
</form>
Затем мы можем сделать так, чтобы событие javascript отправило скрытую форму за сценой и вошло в систему.
Однако более искушенный пользователь, уже прошедший проверку подлинности на нашем сайте, может просмотреть исходный код и просмотреть имя пользователя и пароль.
Я бы предпочел размещать информацию из PHP-скрипта, чтобы беспрепятственно регистрировать ее на внешнем сайте.
Я провел много исследований в сети и придумал несколько последовательных строк кода, которые люди реализуют, которые, похоже, не работают.
Они обычно похожи на код ниже:
$ch = curl_init($POSTURL);
curl_setopt($ch, CURLOPT_POST ,1);
curl_setopt($ch, CURLOPT_POSTFIELDS,POSTVARS);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION ,1);
curl_setopt($ch, CURLOPT_HEADER ,0); // DO NOT RETURN HTTP HEADERS
curl_setopt($ch, CURLOPT_RETURNTRANSFER ,1); // RETURN THE CONTENTS OF THE CALL
$Rec_Data = curl_exec($ch);
curl_close($ch);
Однако, похоже, аутентификация не работает. Если я попытаюсь напечатать то, что возвращает curl_exec, у меня ничего не получится. Я также не уверен, что это будет верный путь.
Я получаю следующую ошибку из моего кода:
Ошибка скручивания: ошибка установки сертификата, проверьте расположение: CAfile: / etc / ssl / certs
/ca-certificates.crt CApath: нет
Я не хочу держать пользователей внутри нашего сайта, я просто хочу запустить другой сайт после их аутентификации. Если это работает в стандартном HTML-посте, я смогу воссоздать эту возможность, используя код на стороне сервера. Верно?
Кстати, я сделал что-то подобное в своей прошлой жизни с Coldfusion. Это было намного проще. Конечно, PHP и все его пользователи что-то придумали!