Как проверить, вошел ли пользователь через CAS - PullRequest
0 голосов
/ 26 января 2012

Каким будет правильный способ проверки, если пользователь в данный момент вошел в систему через CAS?

В верхней части каждой веб-страницы у меня есть этот код:

phpCAS::isAuthenticated();

но это дает мне эту ошибку:

phpCAS :: isAuthenticated (): этот метод не должен вызываться раньше phpCAS :: client () или phpCAS :: proxy ()

Но если я добавлю вызов phpCAS :: client () примерно так:

phpCAS::client(CAS_VERSION_2_0, SSO_HOSTNAME, intval(SSO_PORT), SSO_URI, false);
phpCAS::isAuthenticated();

Я получаю другую ошибку:

phpCAS :: client (): phpCAS :: client () уже вызван

Обратите внимание, что я могу входить и выходить из системы через пользователя. Мне просто нужно проверить, вошел ли пользователь во время прохождения сайта.

Спасибо.

1 Ответ

0 голосов
/ 03 марта 2012

phpCAS устанавливает глобальную переменную при создании клиента. Таким образом, phpCAS :: client () должен вызываться из глобально включенного файла - таким образом, любые вызовы phpCAS :: isAuthenticated () действительны.

, чтобы избежать создания клиента более одного раза, просто проверьте, установлена ​​ли глобальная переменная ($ PHPCLIENT).

...