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