zfr / zfr-oauth2-server-module

用于 ZfrOAuth2Server 的 Zend Framework 2 模块

0.7.0 2015-08-01 08:10 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:19 UTC


README

Build Status Latest Stable Version Coverage Status Total Downloads

ZfrOAuth2Module\Server 是一个用于 ZfrOAuth2\Server 的 Zend Framework 2 模块。其目标是轻松创建一个符合 OAuth 2 规范的服务器。

需求

版本说明

请注意,在我达到 1.0 版本之前,我将 不会 遵循语义版本。这意味着 0.1.x 和 0.2.x 之间的版本可能会有 BC 问题。如果您在生产环境中使用此模块,请使用 0.1.* 等依赖关系设置,例如。

安装

仅支持使用 Composer 进行官方安装

php composer.phar require zfr/zfr-oauth2-server-module:0.7.*

zfr_oauth2_server.global.php.dist 文件复制到您的 autoload 文件夹,并通过将 ZfrOAuth2Module\Server 添加到您的 application.config.php 文件中来启用模块。

文档

配置模块

ZfrOAuth2Module\Server 提供了许多默认配置。但是,您需要提供一些信息。

设置用户类

当生成令牌时,它会自动与所有者关联。通常情况下,这将是一个用户。为了使此映射正常工作,您必须确保您的用户类实现了 ZfrOAuth2\Server\Entity\TokenOwnerInterface 接口。然后,您需要修改 Doctrine 映射以将此接口与您自己的用户类关联。代码已设置在 zfr_oauth2_server.global.php.dist 文件中

use Application\Entity\User;
use ZfrOAuth2\Server\Entity\TokenOwnerInterface;

return [
    'doctrine' => [
        'entity_resolver' => [
            'orm_default' => [
                TokenOwnerInterface::class => Application\Entity\User::class
            ]
        ]
    ]
]

添加授权类型

默认情况下,您的 OAuth2 服务器不支持任何内容。您必须通过添加所有想要支持的授权来配置它。例如,以下配置将使您的服务器兼容“用户凭据”授权以及“刷新令牌”授权

use ZfrOAuth2\Server\Grant\PasswordGrant;
use ZfrOAuth2\Server\Grant\RefreshTokenGrant';

return [
    'zfr_oauth2_server' => [
        'grants' => [
            PasswordGrant::class,
            RefreshTokenGrant::class
        ]
    ]
]

指定验证密码和用户名的可调用函数

当使用“用户凭据”授权(也称为密码授权)时,用户名和密码将自动传递给可调用函数。如果可调用函数返回一个 TokenOwnerInterface 实例,则认为它是有效的,并创建访问令牌。否则,将抛出错误。

return [
    'zfr_oauth2_server' => [
        'owner_callable' => function($username, $password) {
            // If valid, return the user, otherwise return null
        }
    ]
];

您还可以传递一个服务密钥,如果您需要注入依赖项,它将从服务管理器中提取。

删除过期的令牌

ZfrOAuth2Module\Server 提供了一个控制台路由,您可以使用它来删除过期的访问令牌。您可以将此用作 CRON 任务以清理数据库。在 public 文件夹中,使用以下命令

php index.php oauth2 server delete expired tokens.