php - Mod Auth CAS 两个登录系统

标签 php authentication apache2 cas

我需要支持大学 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 session 一起过期。

关于php - Mod Auth CAS 两个登录系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10778605/

相关文章:

authentication - JWT token 认证,过期 token 仍然有效,.net 核心 Web Api

mod-rewrite - 如何将所有 *.html 页面重定向到 *.php 页面?

php - 在 Laravel 5 中创建用户

php - 'c :/wamp64/bin/php/php7. 0.10/ext/php_oci8_12c.dll' - %1 不是有效的 win32 应用程序

ruby-on-rails - Authlogic:为#<User: 获取未定义的方法 `password':

Django REST Framework SessionAuthentication 似乎不起作用?

python - 无法在虚拟环境中运行 django wsgi

python - 配置 python 时启动 apache2 服务器时出错

php - 如何测试我的应用程序 phpunit - zend framework 2 中的每个模块

php - 选择下拉值以从数据库 mysql 获取填充数据