zfr / zfr-oauth2-server-module
用于 ZfrOAuth2Server 的 Zend Framework 2 模块
Requires
- php: >=5.5
- doctrine/doctrine-module: ~0.9
- zendframework/zend-console: ~2.2
- zendframework/zend-http: ~2.2
- zendframework/zend-modulemanager: ~2.2
- zendframework/zend-mvc: ~2.2
- zendframework/zend-servicemanager: ~2.2
- zendframework/zend-stdlib: ~2.2
- zfr/zfr-oauth2-server: 0.7.*
Requires (Dev)
- phpunit/phpunit: ~4.6
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: 1.4.*
- zendframework/zend-view: ~2.2
This package is auto-updated.
Last update: 2024-08-29 03:47:19 UTC
README
ZfrOAuth2Module\Server 是一个用于 ZfrOAuth2\Server 的 Zend Framework 2 模块。其目标是轻松创建一个符合 OAuth 2 规范的服务器。
需求
- PHP 5.5 或更高版本
- ZfrOAuth2Server
版本说明
请注意,在我达到 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
.