2

我有一个 Web 应用程序,用户在使用之前将在其中进行身份验证。此应用程序的帮助文档是使用安装在不同服务器上的 Wordpress 维护的(如果需要,Wordpress 实例也可以安装在同一服务器上)。为了也访问文档,用户必须经过身份验证,现在这是使用 Wordpress 插件完成的。

现在我想让所有人的身份验证过程通用。即用户来到网络应用程序,然后登录以使用该应用程序,他们可以单击应用程序中的“文档”链接,用户也自动登录到 Wordpress。我该如何实施?

4

1 回答 1

2

在用户必须单击电子邮件中的链接并自动登录之前,我不得不做类似的事情。

我将以下内容添加到我的主题 header.php

if (!is_user_logged_in())
{
  if (isset($_GET['u']) && !empty($_GET['u']))
  {
    $u = $_GET['u'];
    $result = $wpdb->get_row($wpdb->prepare("SELECT * FROM wp_users WHERE md5(concat(user_login,'SOMESECRETPHRASE',user_email)) = '%s' AND user_login != 'admin'",$u));
    if (isset($result->ID) && isset($result->user_login))
    {
        wp_set_current_user($result->ID, $result->user_login);
        wp_set_auth_cookie($result->ID);
    }
  }
}

用户登录链接是通过添加/?u=".md5($user_login."SOMESECRETPHRASE".$user_email) 到链接末尾创建的

然后他们将自动以正确的 wordpress 用户身份登录到 wordpress。

于 2012-05-03T09:52:57.160 回答