shawm11 / hawk-auth
PHP 实现的 Hawk HTTP 身份验证方案
Requires
- php: >=5.5.0
Requires (Dev)
- php: >=7.3.0
- codeception/assert-throws: ^1.0
- codeception/specify: ^1.1
- codeception/verify: ^2.0
- consolidation/robo: ^2.1
- phpstan/phpstan: ^0.12.0
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: ^3.2
README
Hawk 身份验证 PHP
A PHP 实现 9.0.2 版本的 Hawk HTTP 身份验证方案。
重要
Hawk 是那些被认为是“完整”的罕见项目之一。根据其 README,协议和文档被认为是完整的。这意味着该存储库的更改不频繁,因为可能只需每隔几年更新一次开发依赖项。
如果文档中存在错误或问题,请创建一个 问题。问题将尽快得到回复或解决。
目录
什么是 Hawk?
Hawk 是一种 HTTP 身份验证方案,提供机制以使用部分加密验证进行身份验证的 HTTP 请求和响应,涵盖 HTTP 方法、请求 URI、主机以及可选的请求有效负载。
注意,Hawk 不是一个完整的 OAuth 替代品。在 Hawk API 文档的 常见问题 部分中明确指出
Hawk 最初被提出作为 OAuth MAC Token 规范。然而,OAuth 工作组在其一贯的无能中未能提出一个最终、可用的解决方案来解决 OAuth 1.0 的一个最常用用例——使用它来验证简单的客户端-服务器事务(即双端)。正如你可以猜到的,OAuth 工作组仍在努力制造更多的垃圾。
Hawk 提供了一种简单的 HTTP 身份验证方案,用于进行客户端-服务器请求。它不涉及 OAuth 将访问权委托给第三方的情况。如果您正在寻找 OAuth 的替代方案,请查看 Oz。
有关 Hawk 的更多信息,请查看其 API 文档
入门
先决条件
- Git 2.9+
- PHP 5.5.0+
- OpenSSL PHP 扩展
- JSON PHP 扩展
- Composer
安装
使用 Composer 下载和安装
composer require shawm11/hawk-auth
使用示例
本节中的示例未经修改无法工作。然而,这些示例应该足以说明如何使用此包。由于 PHP 是一种最常用于服务器逻辑的语言,因此“服务器”用法比“客户端”用法更常见。
API 参考
- 服务器 API —
Shawm11\Hawk\Server
命名空间中的类 API 参考 - 客户端 API —
Shawm11\Hawk\Client
命名空间中的类 API 参考 - Utils API —
Shawm11\Hawk\Utils
命名空间中类的API参考 - Crypto API —
Shawm11\Hawk\Crypto
命名空间中类的API参考
安全考虑
请参阅安全注意事项部分,该部分位于Hawk API文档中。
相关项目
- Oz PHP实现 — Oz是一种Web授权协议,是OAuth 1.0a和OAuth 2.0三步授权的替代方案。Oz同时使用Hawk和iron。
- Iron PHP实现 — iron(全部小写字母拼写),用于将JSON对象封装成令牌的加密工具。可以将iron视为JSON Web Tokens (JWT)的替代方案。
贡献/开发
请阅读CONTRIBUTING.md,了解编码风格、Git提交信息指南和其他开发信息。
版本
本项目使用SemVer进行版本控制。有关可用版本,请参阅本存储库的标签。
许可
本项目是开源软件,采用MIT许可证。