使用自定义站点进行单点登录

时间:2012-07-17 作者:Shyam K

我有一个网站,有一个Wordpress博客部分。我想在站点中启用单点登录,以便在登录到我的站点时,WP博客也同时登录。我有两个用户表。一个用于现场,另一个用于WP部分。我所做的是添加了一个curl以及用于登录站点博客部分的函数。下面是我使用的代码。

$username = $_POST[\'username\'];
    $password = $_POST[\'password\'];
    $url="http://www.crickees.svn.local/blog/";
        $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, 1);
        curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
        curl_setopt ($ch, CURLOPT_REFERER, $url . "wp-admin/");
        curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata);
        curl_setopt ($ch, CURLOPT_POST, 1);
        $result = curl_exec ($ch);
        curl_close($ch);
问题是wp_signon() 函数正在获取值,但它似乎没有生成所需的cookie。要进行哪些更改才能生成cookie。

我尝试了另一种方法,将值硬编码到wp\\u登录中。php页面。在这里,我将这些值设置到$creds数组中。

wp_signon($creds,$secure_cookie);
但这阻止了从博客注销。所以这个计划没有成功。

帮点忙就好了。提前谢谢。

2 个回复
最合适的回答,由SO网友:Shyam K 整理而成

    $username = $_POST[\'username\'];
    $password = $_POST[\'password\'];

    define(\'__ROOT__\', dirname(\'public_html\'));
    require_once (__ROOT__.\'/blog/wp-load.php\');

    $credentials = array(\'user_login\' => $username, \'user_password\' => $password);
    $user  = wp_signon($credentials,$secure_cookie);
这是我在验证网站登录后立即放置的代码。这基本上包括wp负载。php文件,它反过来允许我从我的站点进行WP函数调用。因此,我调用wp\\u signon()函数来传递我网站上发布的值。

Please note this method only works if the username and password of both the the site and WP blog are the same. This is not a proper method for WP Single Sign On, just a hack that worked in my case

我后来在管理面板上禁用了更改密码的选项。

SO网友:anu

看看这个答案,看看它是否有用:

https://wordpress.stackexchange.com/a/11472/490

结束

相关推荐

Custom login page problem!

我试图通过在函数中添加1来创建自定义登录页。php和2放入主题文件夹。但我甚至不能执行主题。我可以在没有1和2的情况下激活主题。然而,该网站在试图更新功能时双向冻结。将2推到服务器并修改函数后的php。php,并尝试在将主题(包括1,2)推送到服务器后激活主题。该文件可访问www.lastech。com。金色/绿色。zip我尝试了很多不同的方法来解决这个问题,但都不管用。我花了将近一周的时间。请帮帮我,伙计们!1.function custom_login() { echo \'<link