使用外部提供程序IFRAME和数据对象进行自定义登录

时间:2015-06-28 作者:noquierouser

我试图结合一个外部身份验证系统来代替实际的WordPress登录,但根据我检查过的许多教程和线程,这个外部身份验证系统有点奇怪。

我使用的身份验证系统需要在我的登录页面中放置一个iframe,该页面承载自己的登录字段和验证,因此我不必担心密码丢失、注册新用户(在身份验证系统中)或用户名/密码错误。如果用户正确,它会重定向到我设置的页面,并向该页面发送URL Encoded Encrypted XML via GET 使用用户数据(用户名、姓名、电子邮件)。它不发送任何密码。当我收到这个XML时,我会执行所需的过程extract the user data in an Object, 其中包含提到的用户数据。

现在,到目前为止I\'ve managed to make my own login page 其中包含iframe,并且具有以下逻辑receive and process the XML. 我不知道该怎么做pass data from this object to a login function 在WordPress方面。

我看过许多涉及修改WordPress内置登录表单的教程,它们使用用户/密码方案来实现这一点,但我不能这样做,因为没有其他方法可以使用此系统进行身份验证。我有no access 到外部数据库和no API 以简化此过程。

是否有任何不需要使用用户/密码方案的身份验证功能?或者至少是一个允许我登录的函数without using a password?

1 个回复
最合适的回答,由SO网友:mmm 整理而成

要连接用户,需要以下代码:

$args = array(
    // args for searching the user
);

$wp_user_search = new \\WP_User_Query($args);
$items = $wp_user_search->get_results();

$user = array_pop($items);


// connecting the user

wp_set_auth_cookie(
    $user->ID
    , TRUE // $remember
);


// redirect to admin root

wp_redirect(admin_url("/"));
exit();

结束

相关推荐

自定义“wp_login.php?action=lostpassword”并重置密码

我有一份有效的定制登记表。然后,在这个表单上,我有“忘记密码”链接。这个不太好用。“忘记密码”表单的设计可以;输入登录名或电子邮件地址以接收电子邮件并更改密码。我有两个案例:如果登录为空或为假,如果登录正确,我有以下代码://traitement des erreurs de connexion $errorlost2 = false; if ( !empty( $_POST ) ) { $user_login = $_POST[\'user_login\'];