public function authenticate(Request $request, Response $response)
{
if ($user = $this->getUser($request)) {
return $user;
}
$provider = $this->_checkProvider($request->query);
if (!$provider) {
return false;
}
$returnTo = Router::url(['plugin' => 'ADmad/HybridAuth', 'controller' => 'HybridAuth', 'action' => 'authenticated', 'prefix' => false], true);
if (!empty($this->_config['hauth_return_to'])) {
$returnTo = Router::url($this->_config['hauth_return_to'], true);
}
$params = ['hauth_return_to' => $returnTo];
if ($provider === 'OpenID') {
$params['openid_identifier'] = $request->query($this->_config['fields']['openid_identifier']);
}
$adapter = Hybrid_Auth::authenticate($provider, $params);
if ($adapter) {
return $this->_getUser($adapter);
}
return false;
}