Ich habe zwei Wordpress-Websites auf Sub-Domain eines Servers mit wie http://first.mywebsites.net und http://second.mywebsites.netLink für die Anmeldung von zwei völlig getrennten Wordpress-Websites
Beide sind ebenso wie private Seiten, kann ich die Inhalte der Seiten, sehen, ob ich bin in die Website eingeloggt, ansonsten auf die Anmeldeseite umgeleitet.
Nun, was ich will, ist, wenn ich meine erste Website anmelden und auf den Link der zweiten Website im selben Browser gehen, dann kann ich den Inhalt der Seiten als angemeldeter Benutzer sehen.
Dies muss nur in einem Fall geschehen, wenn der Benutzer, der in der ersten Website angemeldet ist, den gleichen Benutzer (Benutzer mit der gleichen Mail-ID registriert) in der Datenbank der zweiten Website hat. Wie im Falle meiner Website, sind die meisten Benutzer mit der gleichen Mail-ID in beiden Websites registriert.
dies durch zwei Ansätze zu erreichen versuchen, aber nach wie vor nicht in der Lage, dies zu erhalten, indem einer von ihnen:
Ansatz 1: eine Tabelle zweiter Website Hinzufügen und den Benutzer E-Mail und einen Auth-Schlüssel zu speichern. Mit curl, um die Details zu holen und dann eingeloggt. Dieser Ansatz ist wie hier erwähnt: http://carlofontanos.com/auto-login-to-wordpress-from-another-website
Aber wie ich es zuvor erwähnt habe, dass sowohl die Website in meinem Fall privaten Inhalt haben, also in diesem Fall ich Ich bin nicht in der Lage, die Details mit Curl zu holen. Mein Code für curl ist wie:
$api_url = "http://second.mywebsites.net/autologin-api/";
// If you are using WordPress on website A, you can do the following to get the currently logged in user:
global $current_user;
$user_email = $current_user->user_email;
// Set the parameters
$params = array(
'action' => 'get_login_key', // The name of the action on Website B
'key' => '54321', // The key that was set on Website B for authentication purposes.
'user_email' => $user_email // Pass the user_email of the currently logged in user in Website A
);
// Send the data using cURL
$ch = curl_init($api_url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$gbi_response = curl_exec($ch);
curl_close($ch);
// Parse the response
parse_str($gbi_response);
print_r($gbi_response);
In diesem Fall bin ich nicht die Antwort bekommen, meine Seite meHauptseite der zweiten Website zur Anmeldung umleiten.
Ansatz 2: Versuchen Sie es mit der Verwendung von Cookies zu tun, wie ich auf der zweiten Website im selben Browser angemeldet sein möchte.
global $current_user;
$user_email = $current_user->user_email;
if($user_email != ''){
$_COOKIE['current_user_mail_id'] = $user_email;
}
echo "<pre>";
print_r($_COOKIE);
echo "</pre>";
und Keksen zeigen mit den anderen Cookies: Ich habe ein neues Cookie in meiner ersten Website wie hinzugefügt. Aber wenn ich diese Überprüfung in meiner zweiten Website auf demselben Browser wie:
echo "<pre>";
print_r($_COOKIE);
echo "</pre>";
Das Cookie, das ich in meiner ersten Website hinzugefügt habe, zeigt nicht auf meiner zweiten Website. Ich bin nicht sehr vertraut mit Cookies, Einstellung auth Cookies usw.
Bitte schlagen Sie eine Lösung, wie kann ich das erreichen.
Können Sie OpenID integrieren? Es gibt ein [plugin] (https://wordpress.org/plugins/openid/). – SilverlightFox