Я разрабатываю расширение для TYPO3> = v9.5, это расширение напрямую перенаправляет пользователя на службу OAuth2 (keycloak) или загружает интерфейс входа по умолчанию, если указан параметр URL-адреса c.
Когда задан этот параметр, в моей службе аутентификации через $_SESSION
устанавливается сеанс для дальнейших запросов. Вход выполнен успешно, но инструмент установки в бэкэнде недоступен (session_set_save_handler(): Cannot change save handler when session is active" @ SessionHandler:80
).
Кто-нибудь знает, как это сделать?
My AuthenticationService:
class AuthenticationService extends \TYPO3\CMS\Core\Authentication\AbstractAuthenticationService
{
// ....
private function isAvailable(): bool
{
$isAvailable = true;
if (array_key_exists('admin_login', $_GET)) {
$this->session->set('admin_login', true);
$isAvailable = false;
}
if ($this->session->has('admin_login')) {
$isAvailable = false;
}
return $isAvailable;
}
public function authUser()
{
if (!$this->isAvailable()) {
// return failure but allow other services to handle
return 50;
}
// .....
}