Как установить междоменные куки-файлы при помощи curl или любым другим способом?

У меня два сайта. Я хочу установить cookie по запросу curl на другом домене.

Я делаю запрос локон с моего первого сайта.
Вот структура кода:

$url = 'http://www.secondwebsite.com/ext/access/api/manage.php';
$data = array('id' => '23',
"firstname" => "First name",
"lastname" => "last name",
"email" => "[email protected]",
'username' => 'username',
'password' => 'password123',
'action' => 'add',
'authkey' => '12345tgtgtt');
$ch = curl_init($url);
$data_string = urlencode(json_encode($data));
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("customer" => $data_string));

$result = curl_exec($ch);
curl_close($ch);
$result = json_decode($result);

manage.php (Структура кода)

setcookie('username', $_POST['username'], time() + (86400 * 30), "/"); // 86400 = 1 day
setcookie('password', $_POST['password'], time() + (86400 * 30), "/"); // 86400 = 1 day

Но куки не установлены для www.secondwebsite.com.
Есть ли другой способ установить междоменные куки?
На самом деле я хочу разработать единый вход для обоих веб-сайтов. Я хочу, чтобы при входе любого пользователя на firstwebsite.com пользователь автоматически входил на secondwebsite.com.

Есть ли какой-либо подход к функциональности SSO в php? Поделись, пожалуйста..

3

Решение

Вы не можете делить куки между доменами. Представьте себе кражу сессий и тому подобное.

Есть много сайтов о создании SSO, например http://merbist.com/2012/04/04/building-and-implementing-a-single-sign-on-solution/
Это первый из Google.

2

Другие решения

Вы можете использовать метод Access-Control в php для включения Cookie и Session через междоменный домен.

Сохраните этот код в файл php

header("Access-Control-Allow-Origin: http://example.com");
header("Access-Control-Allow-Credentials: true");
header("Access-Control-Allow-Methods: GET, POST,OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, *");

Затем Вы должны запросить этот файл с помощью запроса ajax.

$.ajax(.....

crossDomain: true,
xhrFields: {
withCredentials: true
},
...);

Файлы cookie и сеанс запрашиваемого домена будут контролироваться из запрашивающего домена. И файлы cookie и данные сеанса также будут в том же браузере …

0

По вопросам рекламы [email protected]