I'm building a wordpress system where I want to authenticate users from external source instead of wordpress DB. I'm using wsdl service to communicate with the external DB and I'm getting the proper user information based on their credentials. However I'm not getting how to proceed with the obtained result further. Somebody please help me.
Following are steps I've done so far
Created custom function in pluggable.php and calling it in user.php
function wp_authenticate_username_password($user, $username, $password) {
if ( is_a($user, 'WP_User') ) { return $user; }
if ( empty($username) || empty($password) ) {
if ( is_wp_error( $user ) )
return $user;
$error = new WP_Error();
if ( empty($username) )
$error->add('empty_username', __('<strong>ERROR</strong>: The username field is empty.'));
if ( empty($password) )
$error->add('empty_password', __('<strong>ERROR</strong>: The password field is empty.'));
return $error;
}
//$user = get_user_by('login', $username); /*Replaced it with the below*/
$user = validate_ep($username,$password);
echo "<pre>";
print_r($user); /*Produces the result in step 3*/
echo "</pre>";
exit;
Custom Function in pluggable.php
that communicates with my external DB
function validate_ep($username, $userpwd) {
$wsdl = "my web service path";
$client = new SoapClient($wsdl); //(Parameter is the wsdl file in which the services are written.
$newObj = new stdClass;
$user_name = ucfirst($username);
$user_pwd = md5($userpwd);
$display_type = 'wp';
try {
$result = $client->log_process(array(0 => $user_name, 1 => $user_pwd, 2 => $display_type));
if ($result==FALSE)
return FALSE;
foreach($result->item as $key=>$valObj) {
if(!is_numeric($valObj->key)) {
$newObj->{$valObj->key} = $valObj->value;
}
}
/*$actual = unserialize(base64_decode($result));*/
if (count($result) > 0) {
$user = new WP_User;
$user->init($newObj);
return $user;
}
} catch (SoapFault $exp) {
//print_r( $exp->getMessage());
}
return false;
}
The result returned from web service
WP_User Object
(
[data] => stdClass Object
(
[id] => ID
[organization] => ID
[login] => UserName
[password] => ***
[name] => Name
)
[ID] => 0
[caps] => Array
(
)
[cap_key] => wp_capabilities
[roles] => Array
(
)
[allcaps] => Array
(
)
[filter] =>
)
Somebody please help what can I do after these steps.