user_authenticate does not work for existed users, when using external authentication. It does work for new users, though (if new users, redirect to registration page)

Any idea why?

Thanks,

-----------------------

Relevant codes:

if (! isset ( $_GET ['ticket'] ))
{
return t ( 'To access this page, you must first authenticate your SSO' );
}

$_SESSION['sso_ticket']= $_GET ['ticket'];
$link='A LINK';
$sso_loginName= xmlrpc($link,'session.getLoginName',$_SESSION['sso_ticket']);

//XML-RPC error. Display error to users
if (xmlrpc_error())
return drupal_set_message(t(xmlrpc_error_msg()));

//see if we already have this user in our Drupal database
$user=user_load(array('name' => $sso_loginName));
if (!$user) {
// user does not exist;forward to user registration page
global $base_url;
header("Location: $base_url/user/register");
}
else
{
user_authenticate($user->name, $user->pass);
header("Location: $base_url/node?destination=node");
}

return TRUE;
}

function sso_auth($username, $password, $server)
{
$link='A LINK';
$sso_loginName= xmlrpc($link,'session.getLoginName',$_SESSION['sso_ticket']);
if (xmlrpc_error())
return false;

return true;

}

Comments

bigheadfish’s picture

That works for 5.7 but not for 5.10.