uwdoem/aliro

此包最新版本(1.0.7)没有可用的许可证信息。

Slim.php 中间件库,通过华盛顿大学集团和人员Web服务授权用户

1.0.7 2018-01-05 00:09 UTC

This package is not auto-updated.

Last update: 2024-09-21 01:37:18 UTC


README

Build Status Latest Stable Version

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