chillerlan / php-oauth
一个完全透明的、框架无关的PSR-18 OAuth客户端。
1.0.1
2024-05-30 16:10 UTC
Requires
- php: ^8.1
- ext-json: *
- ext-sodium: *
- chillerlan/php-http-message-utils: ^2.2.1
- chillerlan/php-settings-container: ^3.2
- psr/http-client: ^1.0
- psr/http-message: ^1.1 || ^2.0
- psr/log: ^1.1 || ^2.0 || ^3.0
Requires (Dev)
- chillerlan/php-dotenv: ^3.0
- chillerlan/phpunit-http: ^1.0
- guzzlehttp/guzzle: ^7.8
- monolog/monolog: ^3.6
- phan/phan: ^5.4
- phpmd/phpmd: ^2.15
- phpunit/phpunit: ^10.5
- squizlabs/php_codesniffer: ^3.9
Suggests
- chillerlan/php-httpinterface: ^6.0 - an alternative PSR-18 HTTP Client
Provides
This package is auto-updated.
Last update: 2024-09-19 18:41:23 UTC
README
一个透明、框架无关、易于扩展的PHP PSR-18 OAuth客户端,具有用户友好的API,完全兼容PSR-7/PSR-17。
概述
功能
- OAuth客户端功能
- OAuth 1.0a (RFC-5849)
- OAuth 2.0 (RFC-6749)
- 授权代码授予
- 客户端凭证授予
- 令牌刷新
- CSRF令牌 ("state"参数)
- RFC-7009: 令牌撤销
- RFC-7636: PKCE (代码交换证明密钥)
- RFC-9126: PAR (推送授权请求)
RFC-9449: DPoP (证明占有)(计划中)
- 专有、类似OAuth的授权流程(例如Last.fm)
- 访问令牌失效(如果提供者支持)
- 多个内置提供者实现(见下文)
- 提供者实例作为PSR-18 HTTP客户端,包装给定的PSR-18 HTTP实例
- 对提供者API的请求将自动添加所需的OAuth头和令牌
- 通过
sodium_crypto_secretbox()
对内部存储引擎进行可选的令牌加密 - 通过
OAuthInterface::me()
方法提供统一的用户数据对象AuthenticatedUser
要求
- PHP 8.1+
- 扩展:
json
、sodium
- 依赖项:
curl
、fileinfo
、intl
、mbstring
、simplexml
、zlib
- 依赖项:
- 扩展:
- 你选择的PSR-18兼容HTTP客户端库
- PSR-17兼容的
RequestFactory
、StreamFactory
和UriFactory
文档
- 用户手册位于https://php-oauth.readthedocs.io/ (源代码)
- 使用phpDocumentor创建的API文档可在https://chillerlan.github.io/php-oauth/找到
AccessToken
、AuthenticatedUser
和OAuthOptions
容器的文档可在此处找到:chillerlan/php-settings-container- 这里有获取令牌示例套件,主要用于开发,并且还有用于快速入门的独立示例
使用 composer 安装
更多安装信息请参阅安装指南!
终端
composer require chillerlan/php-oauth
composer.json
{ "require": { "php": "^8.1", "chillerlan/php-oauth": "^1.0" } }
注意:请检查版本发布以获取有效版本。
实现的服务提供商
说明
- 服务提供商:服务提供商类名及其API文档链接
- 密钥:链接到服务提供商的OAuth应用程序创建页面
- 撤销:链接到服务提供商用户资料中的OAuth应用程序访问撤销页面
- 版本:服务提供商支持的OAuth版本
- 用户:表示服务提供商通过
me()
方法(实现UserInfo
接口)提供有关当前认证用户的信息 - CSRF:表示服务提供商使用通过
state
参数提供CSRF保护(实现CSRFToken
接口) - PKCE:表示服务提供商支持代码交换证明键(实现
PKCE
接口) - CC:表示服务提供商支持客户端凭据授权(实现
ClientCredentials
接口) - TR:表示服务提供商能够刷新访问令牌(实现
TokenRefresh
接口) - TI:表示服务提供商能够撤销/使访问令牌无效(实现
TokenInvalidate
接口)
免责声明
OAuth令牌是秘密,应如此对待。请将其存储在安全的地方,考虑加密。
对于被盗的OAuth令牌,我不承担责任。请自行承担风险。
隐私政策
此库不会自行存储或处理用户数据 - 它仅处理应用程序的OAuth流程。
实施者有责任根据服务提供商制定适当的隐私政策。