dlundgren / watchtower
WatchTower 认证
Requires
- php: >=7.2
Requires (Dev)
- codeclimate/php-test-reporter: dev-master
- mikey179/vfsstream: ^1.6
- phploc/phploc: ^5.0
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^8.5
- roave/security-advisories: dev-master
- sebastian/phpcpd: ^4.1
- squizlabs/php_codesniffer: ^3.3
- syberisle/coding-standards: ^2.0
This package is auto-updated.
Last update: 2024-08-29 04:03:24 UTC
README
WatchTower 是一个库,允许使用不同的后端提供者和协议来识别和认证用户。
WatchTower 识别以下身份状态
- 匿名
- 已识别
- 已认证
需要注意的是,已识别并不等同于已认证。
PSR-1 和 PSR-4 兼容。
流程
识别 > 认证 > 验证 > 授权
目前只有识别和认证功能已经实现。验证和授权功能可能稍后实现。
识别和认证是通过 Sentry 接口实现的,它只知道如何区分给它的事件。目前实现的 Sentry 只执行一项功能,而不是两项,目前是这样的。正如之前提到的,系统中有两个事件被触发,识别和认证。
我没有实现其他主要的事件管理器,因为 WatchTower 并不是设计成完整的事件管理系统,但 Sentry 仍然需要上下文信息,而事件似乎在目前是最合理的。
也就是说,你可以使用 WatchTower::watch(Sentry) 方法附加任何类型的事件。
识别
当被调用或直接在认证之前发生识别。透明识别,使用会话变量或基于 IP,可以通过首先向 WatchTower 添加一个隐形 Sentry,然后添加进一步的识别 Sentry 来获得。分为两个阶段。
认证
需要身份和凭证。
会话支持
WatchTower 提供了一个 PhpSession 类用于原生 PHP 会话存储。建议创建一个实现 Sentry 接口并类似地与框架会话对象交互的类,就像 PhpSession 类与原生会话交互一样。
Sentry
透明识别
这些 Sentry 在幕后使用,以从会话或可能检查 IP 地址范围的适配器中加载身份,将会话标记为访客。
识别
这些 Sentry 在 identify() 或 authenticate() 调用期间用于识别用户。
认证
认证 Sentry 验证凭证和身份的有效性。
致谢
这是基于 ZetaComponents 认证组件要求文档的。 https://github.com/zetacomponents/Authentication/blob/master/design/requirements.txt