验证用户当前是否通过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()已被调用
请注意,我可以通过用户登录和注销用户。我只需要验证用户是否在登录网站时登录。
感谢。
答案 0 :(得分:0)
phpCAS在创建客户端时设置全局变量。因此,应该从全局包含的文件中调用phpCAS :: client() - 这样对phpCAS :: isAuthenticated()的任何调用都是有效的。
为了避免多次创建客户端,只需检查是否设置了全局变量($ PHPCLIENT)。