TYPO3 установка пользовательского сеанса в сервисе аутентификации - PullRequest
0 голосов
/ 05 мая 2020

Я разрабатываю расширение для 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;
        }

    // .....
}
...