我需要支持大学CAS认证系统。使用Apache2上的mod_auth_cas很简单,并且工作正常。
我们现在需要将非大学用户添加到系统中。这实际上意味着我们需要支持两个登录系统。第二个登录系统是我们自己的自定义风格,只需通过POST授权用户PHP。
这似乎是一个不可能的环境。有什么提示吗?
答案 0 :(得分:1)
解决方案原来是phpCAS。
使用常规的mod_auth_cas,你在监视CAS后面的整个位置,无法选择性地禁用它。
使用phpCAS,您可以在php文件中执行OPTIONALLY认证。
我的所有php文件都通过ajax POST GET请求进行通信,因此如果没有登录并导致重定向,则需要登录机制来阻止访问这些文件。使用php $ _SESSION变量,我们可以存储登录是否成功。在每次访问时,我们都可以检查$ _SESSION变量并在将JSON消息推送回javascript客户端后快速退出,通知他们失败并重定向。
当用户尝试登录时,他们可以选择CAS路线。使用phpCAS,它将正确地重定向到CAS服务器,并在完成后返回到我的应用程序。如果他们选择内部登录数据库,那么他们会填写一个简单的表格,就像任何自制登录系统一样。在这两种情况下,$ _SESSION都会存储成功,并在访问关键PHP文件时检查并验证成功。
由于经过验证和检查,CAS到期后我们会在这里抓住它。内部登录系统与PHP会话一起过期。