HybridAuth не входит со страницы &service=logout
Если совершить выход и сразу с этой страницы пробовать войти через HybridAuth, плагин будет делать редирект на страницу yoursite.ru/?service=logout, то есть тут же выходить.
Я написал костыль в плагин HybridAuth — возможно не самое правильное решение, но в моей ситуации помогает. В самом низу просто вырезаю значения из url`ов в массиве $arr.
$arr = str_replace([«service=logout&», "?service=logout"], "", $arr);
Я написал костыль в плагин HybridAuth — возможно не самое правильное решение, но в моей ситуации помогает. В самом низу просто вырезаю значения из url`ов в массиве $arr.
$arr = str_replace([«service=logout&», "?service=logout"], "", $arr);
if ($modx->user->isAuthenticated($modx->context->key)) {
$add = array();
if ($services = $modx->user->getMany('Services')) {
/* @var haUserService $service */
foreach ($services as $service) {
$add = array_merge($add, $service->toArray(strtolower($service->get('provider') . '.')));
}
}
$user = $modx->user->toArray();
$profile = $modx->user->Profile->toArray();
unset($profile['id']);
$arr = array_merge(
$user,
$profile,
$add,
array(
'login_url' => $url . 'login',
'logout_url' => $url . 'logout',
'providers' => $HybridAuth->getProvidersLinks($providerTpl, $activeProviderTpl),
'error' => $error,
'gravatar' => 'https://gravatar.com/avatar/' . md5(strtolower($profile['email'])),
)
);
return $modx->getChunk($logoutTpl, $arr);
}
else {
$arr = array(
'login_url' => $url . 'login',
'logout_url' => $url . 'logout',
'providers' => $HybridAuth->getProvidersLinks($providerTpl, $activeProviderTpl),
'error' => $error,
);
$arr = str_replace(["service=logout&", "?service=logout"], "", $arr);
return $modx->getChunk($loginTpl, $arr);
}