uwdoem / aliro
Slim.php 中间件库,通过华盛顿大学集团和人员Web服务授权用户
Requires
- slim/slim: ^3.0
- uwdoem/connection: 3.*
- uwdoem/group: ^1.0.10
- uwdoem/person: ^1.5.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-21 01:37:18 UTC
README
UWDOEM/Aliro
Aliro是Slim.php框架的中间件类。它通过UW集团Web服务提供用户授权。
它很容易添加到Slim.php应用程序中。只需将Aliro注册为中间件,并提供一组受保护的端点和有权访问它们的UW组。访客将被检查成员资格,如果没有在提供的组中找到,他们将会收到一个401响应,而不会从您的应用程序中提供任何内容。
$aliro_settings = array(
'permissions' => array(
'/post/{name}' => ['u_bonifacp_test_user', 'u_bonifacp_test_admin'],
'/admin/{name}' => ['u_bonifacp_test_admin']
)
);
$app = new \Slim\App(...);
$app->add(new Aliro($aliro_settings));
注意
这不是一个官方库,任何管理或拥有通过GWS访问的信息的任何一方都未批准或支持。这个库不被华盛顿大学招生管理部批准或支持。
安装
此库在packagist上发布。要使用Composer安装,请将"uwdoem/aliro": "1.*"
行添加到您的"require"依赖项中
{
"require": {
"uwdoem/aliro": "1.*"
}
}
当然,您也可以通过直接下载来使用Aliro,但强烈建议使用Composer来管理包。有关更多信息,请参阅Composer。
使用
安装完成后,在将Aliro注册为Slim应用程序的中间件之前,您需要提供一些配置信息。
首先,您必须定义集团Web服务所需设置
// Intialize the required settings
define('UW_GWS_BASE_PATH', '/path/to/my/private.key');
define('UW_GWS_SSL_KEY_PATH', '/path/to/my/private.key');
define('UW_GWS_SSL_CERT_PATH', '/path/to/my/public_cert.pem');
define('UW_GWS_SSL_KEY_PASSWD', 'myprivatekeypassword'); // Can be blank for no password: ''
define('UW_GWS_VERBOSE', false); // (Optional) Whether to include verbose cURL messages in error messages.
您还需要定义类似但不同的设置,用于人员Web服务,因为Aliro依赖于这两个系统。
// Intialize the required settings
define('UW_WS_BASE_PATH', '/path/to/my/private.key');
define('UW_WS_SSL_KEY_PATH', '/path/to/my/private.key');
define('UW_WS_SSL_CERT_PATH', '/path/to/my/public_cert.pem');
define('UW_WS_SSL_KEY_PASSWD', 'myprivatekeypassword'); // Can be blank for no password: ''
define('UW_WS_VERBOSE', false); // (Optional) Whether to include verbose cURL messages in error messages.
最后,您需要提供针对Aliro的特定设置,然后为您的应用程序注册中间件。
$aliro_settings = array(
'permissions' => array(
'/post/{name}' => ['u_bonifacp_test_user', 'u_bonifacp_test_admin'],
'/admin/{name}' => ['u_bonifacp_test_admin']
),
'deniedHandler' => null
);
$app = new \Slim\App(...);
$app->add(new Aliro($aliro_settings));
这就是全部内容。每次当前用户请求您列出的端点时,Aliro都会检查他们的组。如果用户是列表中的任何一组成员,则允许端点解析。如果不是成员,则返回401,并附带一个错误JSON对象。
//Default permissions denied response
{
"success":false,
"status":401,
"previous":null,
"current":"http:\/\/dev2.admit.washington.edu\/aliro\/public\/GWS.php\/admin\/jim",
"next":null,
"data":null,
"time":"2017-11-20 02:13:37 pm",
"error":null
}
您可以在初始设置中定义自定义权限拒绝处理程序,以替代返回JSON。
未列出的端点默认可访问。如果没有权限规则,Aliro不会进行检查。
需求
- PHP 7.0
- uwdoem/connection 3.*
- uwdoem/group ^1.0.10
- uwdoem/person ^1.5