dlundgren/watchtower

WatchTower 认证

dev-master 2020-07-03 17:13 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:24 UTC


README

Travis CI Code Climate

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