WordPress已经通过XMLRPC服务器内置了一个API。也就是说,您可以从java应用程序发出XMLRPC请求并验证用户名/密码。不幸的是,无法按原样通过它进行身份验证。
这就是说,你很容易自己动手。只需钩住xmlrpc_methods
, 过滤器,并添加您的过滤器。添加的数组键是从应用程序调用的xmlrpc方法,值是WordPress xmlrpc服务器调用的函数。
<?php
add_filter(\'xmlrpc_methods\', \'wpse39662_add_login_method\' );
/**
* Filters the XMLRPC methods to allow just checking the login/pass of
* a given users
*/
function wpse39662_add_login_method( $methods )
{
$methods[\'wpse39662.login\'] = \'wpse39662_check_login\';
return $methods;
}
和回调函数,
wpse39662_check_login
, 将获得一个传递给它的参数,即发送到XMLRPC服务器的内容数组。
<?php
function wpse39662_check_login( $args )
{
$username = $args[0];
$password = $args[1];
$user = wp_authenticate( $username, $password );
if( is_wp_error( $user ) )
{
return false;
}
return true;
}
这些都是
as a plugin. 在您的WP站点上安装并启用了XMLRPC之后,您应该能够使用一些XMLRPC客户端发出请求(我相信Java有一个)。
下面是我用来测试上述内容的代码(Python XMLRPC客户端)。
>>> import xmlrpclib as xmlrpc
>>> s = xmlrpc.ServerProxy(\'http://wordpress.dev/xmlrpc.php\')
>>> s.wpse39662.login(\'admin\', \'password\')
True