我有一个 Web 应用程序,用户在使用之前将在其中进行身份验证。此应用程序的帮助文档是使用安装在不同服务器上的 Wordpress 维护的(如果需要,Wordpress 实例也可以安装在同一服务器上)。为了也访问文档,用户必须经过身份验证,现在这是使用 Wordpress 插件完成的。
现在我想让所有人的身份验证过程通用。即用户来到网络应用程序,然后登录以使用该应用程序,他们可以单击应用程序中的“文档”链接,用户也自动登录到 Wordpress。我该如何实施?
我有一个 Web 应用程序,用户在使用之前将在其中进行身份验证。此应用程序的帮助文档是使用安装在不同服务器上的 Wordpress 维护的(如果需要,Wordpress 实例也可以安装在同一服务器上)。为了也访问文档,用户必须经过身份验证,现在这是使用 Wordpress 插件完成的。
现在我想让所有人的身份验证过程通用。即用户来到网络应用程序,然后登录以使用该应用程序,他们可以单击应用程序中的“文档”链接,用户也自动登录到 Wordpress。我该如何实施?
在用户必须单击电子邮件中的链接并自动登录之前,我不得不做类似的事情。
我将以下内容添加到我的主题 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。