我的客户明确表示不想使用“多站点”wordpress选项
我的客户有一个主站点和199个子站点(其他域)
用户具有元键为branch\\u id的usermeta
例如(完全虚构的名称):
主要站点:kero。子站点:uka。com(和许多其他公司)
两个域都有SSL证书。
最终目标如下:当您登录到主站点(kero.com)时。我已经构建了一个插件来检查哪个分支ID附加到用户。它是这样的:
function myplugin_auth_signon( $username, $password ) {
$user = get_user_by(\'email\', $username);
$user_id = $user->ID;
$key = \'branch_id\';
$single = true;
$branch = get_user_meta( $user_id, $key, $single );
if($branch == \'number\') {
//magic happens here!
$cookie = "cookie.txt";
$postdata = "log=" . $username . "&pwd=" . $password . "&wp-submit=Log%20In&redirect_to=" . $url . "wp-admin/&testcookie=1";
$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $url . "wp-login.php");
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6");
curl_setopt ($ch, CURLOPT_TIMEOUT, 60);
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 0);
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, $cookie);
curl_setopt ($ch, CURLOPT_REFERER, $url . "wp-login.php");
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt ($ch, CURLOPT_POST, 1);
$result = curl_exec ($ch);
curl_close($ch);
//This is from the answer of the link. On the end url the users get redirected from wp-admin to my-account
header(\'location: \' . $url . \'wp-admin/\');
die();
//after logging in redirect the user to uka.com/my-account
}
add_action( \'wp_authenticate\', \'myplugin_auth_signon\', 30, 2 );
所以我构建了各种各样的东西,我在//magic ockes here上使用了这个链接:
Click here.它没有按预期工作。它让我保持在主网站上,但当我点击“商店”时,它就在子网站上。当我转到我的帐户(我应该登录的地方)时,我不再登录了。
我写了一些其他代码:
$response = wp_remote_post( $url, array(
\'method\' => \'POST\',
\'timeout\' => 45,
\'redirection\' => 5,
\'httpversion\' => \'1.0\',
\'blocking\' => true,
\'headers\' => array(),
\'body\' => array(
\'username\' => $username,
\'password\' => $password
),
\'cookies\' => array()
)
);
我真的不知道如何将此用于我的个人目标。我可以回显结果,但随后会得到大量标题等。当我浏览子网站时:我没有登录。。。所以它不能保存会话/cookie。
TBH:我对整个会话/cookie/安全方面的东西都是初学者。大多数时候,我在Wordpress或Laravel中构建,大多数安全性方面的东西都已经处理好了。
感谢所有花时间阅读本文的人。
UPDATE: Added extra cUrl code!