baraja-core / structured-api-token-authorizator
一个简单的令牌授权器,用于验证HTTP请求。
Requires
- php: ^8.0
- baraja-core/structured-api: ^3.0 >=3.3.2
Requires (Dev)
- phpstan/extension-installer: ^1.1
- phpstan/phpstan: ^1.0
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-nette: ^1.0
- phpstan/phpstan-strict-rules: ^1.0
- roave/security-advisories: dev-master
- spaze/phpstan-disallowed-calls: ^2.0
This package is auto-updated.
Last update: 2024-09-09 20:44:34 UTC
README
BRJ 组织
结构化API令牌授权器
一个简单的令牌授权器,用于验证HTTP请求。
此包是 Baraja 结构化API 的官方扩展。
📦 安装
建议使用 Composer 进行安装,您也可以在 Packagist 和 GitHub 上找到此包。
要安装,只需使用以下命令
$ composer require baraja-core/structured-api-token-authorizator
您可以通过创建内部类的实例手动使用此包,或注册DIC扩展以将服务直接链接到Nette框架。
简单用法
使用Composer安装此包,并注册DIC扩展(如果您使用 Baraja 包管理器,它将自动注册)。
手动使用扩展定义
extensions: tokenAuthorizator: Baraja\TokenAuthorizator\TokenAuthorizatorExtension
此包将自动禁用默认的系统方法,通过Nette User验证请求,并需要令牌验证。
令牌是查询参数中的任何有效字符串 token
,或者在POST请求的BODY中(在这种情况下)。令牌作为端点调用参数进行评估,可以作为字符串传递给目标端点。
请求验证
如果您不使用自己的令牌验证实现,则默认使用 SimpleStrategy
,您可以通过NEON配置来配置令牌。
如果您没有设置令牌,则所有请求(甚至没有令牌的请求)都将被视为有效。
简单配置示例
tokenAuthorizator: token: abcd
此配置接受以下请求:/api/v1/user?token=abcd
。
端点级别令牌验证
令牌使用在端点级别进行验证。默认情况下,所有端点都启用了访问权限,并由baraja-core/structured-api包中定义的 PublicEndpoint
属性管理。
如果您想在端点中要求令牌验证,请直接在端点定义上方设置属性。
例如
#[PublicEndpoint(requireToken: true)] class ArticleEndpoint extends BaseEndpoint { }
自定义认证
如果您需要更复杂的认证逻辑,请实现一个实现 VerificationStrategy
接口的服务,并将其与DIC注册。当所有请求都进行验证时,将自动调用此服务。
📄 许可证
baraja-core/structured-api-token-authorizator
使用MIT许可证。有关详细信息,请参阅 LICENSE 文件。