agilukm / sso
用于与 SSO-UI 进行身份验证的实用库
Requires
- php: >=5.3
- agilukm/phpcas: ^4.1
README
这是一个用于简化应用程序使用印尼大学 SSO 登录功能的 PHP 库。
安装
1. 使用 Composer 安装(推荐)
推荐安装此库的方法是使用 Composer。Composer 是一个 PHP 的包管理器。这种方法的好处是您可以通过一个命令 composer update
轻松获取更新。此外,如果您使用的是也使用 Composer 的框架,如 Laravel 或 Yii2.0,您也可以轻松访问此库。您可以在这里了解更多关于 Composer 的信息。
要安装此库,请按照以下步骤操作。
-
安装 Composer。 (查看安装方法)
-
将以下依赖项添加到您项目根目录下的 composer.json 文件中(如果不存在,请创建)。
{ "require": { "ristek/sso": "*" } }
-
安装 此库,请在终端中运行以下命令
composer install
此步骤可能需要几分钟,具体取决于您的连接速度。
-
要求 从 composer 中加载 autoload.php 文件到您的文件中(如果您使用的是基于 Composer 的框架,如 Laravel,则可跳过此步骤)
<?php require "vendor/autoload.php";
现在您已经可以使用此库了。
2. 手动安装
要手动使用此库(不使用 Composer),请按照以下步骤操作。
-
从这里下载 phpCAS 库,并将其解压缩到您的项目中某个位置,例如
vendor
目录。 -
将项目作为 zip 文件下载(查看页面右上角),并将其也解压缩到
vendor
。 -
要求
SSO.php
<?php require "vendor/SSO/SSO.php";
-
然后,您必须指定
CAS.php
的路径(位于您在步骤 1 中下载的 phpCAS 库中),如下所示<?php $cas_path = "path/to/CAS.php"; SSO\SSO::setCASPath($cas_path);
现在此库已经可以使用。
使用
您可以在 example.php
和 example-manual.php
文件中查看使用示例。
1. 身份验证
SSO\SSO::authenticate();
此调用将使浏览器重定向到 SSO 登录。如果用户验证成功,此函数将返回布尔值 true
。您可以在调用此函数后假设用户已经成功验证。
2. 获取用户详细信息
SSO\SSO::getUser();
getUser()
函数将返回一个包含成功验证的用户详细信息的 PHP stdClass
对象。以下代码片段展示了它的用法
$user = SSO\SSO::getUser();
echo $user->username; // prints user's username
echo $user->name; // prints user's name
echo $user->role; // prints user's role
/* jika role sebagai mahasiswa */
echo $user->npm; // prints user's npm
echo $user->org_code; // prints user's organization code
echo $user->faculty; // prints user's faculty
echo $user->study_program; // prints user's study program
echo $user->educational_program; // prints user's educational program
/* jika role sebagai staff */
echo $user->nip; // prints user's nip
3. 检查身份验证
SSO\SSO::check();
如果用户已经成功验证,此调用将返回 true
,否则返回 false
。
4. 登出
SSO\SSO::logout();
此调用将结束用户的身份验证。您还可以向 logout 方法添加 URL 参数作为从 SSO 登出后的重定向 URL。
SSO\SSO::logout('http://google.com');
设置 CAS.php 的路径
SSO\SSO::setCASPath($cas_path);
当您不是通过 Composer 安装时,此函数用于设置 SSO 库将使用的 CAS.php
文件的路径。
提示:移除命名空间
您在这里经常看到 SSO\SSO
的调用。有时这会使您的代码变得糟糕且难以阅读。您可以使用以下语句将其移除
use SSO\SSO;
之后,您可以移除前缀 SSO\
,如下所示
SSO::authenticate();
$user = SSO::getUser();