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
It is because of version
That works for 5.7 but not for 5.10.