如何验证用户是否通过CAS登录

时间:2012-01-25 21:57:08

标签: php cas

验证用户当前是否通过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 :(得分:0)

phpCAS在创建客户端时设置全局变量。因此,应该从全局包含的文件中调用phpCAS :: client() - 这样对phpCAS :: isAuthenticated()的任何调用都是有效的。

为了避免多次创建客户端,只需检查是否设置了全局变量($ PHPCLIENT)。