gregurco/guzzle-bundle-oauth2-plugin
Composer 安装命令:
composer require gregurco/guzzle-bundle-oauth2-plugin
包简介
OAuth2 Plugin for Guzzle Bundle, a PHP HTTP client library and framework for building RESTful web service clients
README 文档
README
This plugin integrates OAuth2 functionality into Guzzle Bundle, a bundle for building RESTful web service clients.
Prerequisites
- PHP 7.2 or above
- Guzzle Bundle
- guzzle-oauth2-plugin
Installation
To install this bundle, run the command below on the command line and you will get the latest stable version from Packagist.
composer require gregurco/guzzle-bundle-oauth2-plugin
Usage
Enable bundle
Find next lines in src/Kernel.php:
foreach ($contents as $class => $envs) { if (isset($envs['all']) || isset($envs[$this->environment])) { yield new $class(); } }
and replace them by:
foreach ($contents as $class => $envs) { if (isset($envs['all']) || isset($envs[$this->environment])) { if ($class === \EightPoints\Bundle\GuzzleBundle\EightPointsGuzzleBundle::class) { yield new $class([ new \Gregurco\Bundle\GuzzleBundleOAuth2Plugin\GuzzleBundleOAuth2Plugin(), ]); } else { yield new $class(); } } }
Basic configuration
With default grant type (client)
# app/config/config.yml eight_points_guzzle: clients: api_payment: base_url: "http://api.domain.tld" options: auth: oauth2 # plugin settings plugin: oauth2: base_uri: "https://example.com" token_url: "/oauth/token" client_id: "test-client-id" client_secret: "test-client-secret" # optional scope: "administration"
With password grant type
# app/config/config.yml eight_points_guzzle: clients: api_payment: base_url: "http://api.domain.tld" options: auth: oauth2 # plugin settings plugin: oauth2: base_uri: "https://example.com" token_url: "/oauth/token" client_id: "test-client-id" username: "johndoe" password: "A3ddj3w" scope: "administration" grant_type: "Sainsburys\\Guzzle\\Oauth2\\GrantType\\PasswordCredentials"
With client credentials in body
# app/config/config.yml eight_points_guzzle: clients: api_payment: base_url: "http://api.domain.tld" options: auth: oauth2 # plugin settings plugin: oauth2: base_uri: "https://example.com" token_url: "/oauth/token" client_id: "test-client-id" scope: "administration" auth_location: "body"
Options
| Key | Description | Required | Example |
|---|---|---|---|
| base_uri | URL of oAuth2 server. | yes | https://example.com |
| token_url | The path that will be concatenated with base_uri. Default: /oauth2/token |
no | /oauth/token |
| client_id | The client identifier issued to the client during the registration process | yes | s6BhdRkqt3 |
| client_secret | The client secret | no | 7Fjfp0ZBr1KtDRbnfVdmIw |
| username | The resource owner username | for PasswordCredentials grant type | johndoe |
| password | The resource owner password | for PasswordCredentials grant type | A3ddj3w |
| auth_location | The place where to put client_id and client_secret in auth request. Default: headers. Allowed values: body, headers. |
no | body |
| resource | The App ID URI of the web API (secured resource) | no | https://service.contoso.com/ |
| private_key | Path to private key | for JwtBearer grant type | "%kernel.root_dir%/path/to/private.key" |
| scope | One or more scope values indicating which parts of the user's account you wish to access | no | administration |
| audience | no | ||
| grant_type | Grant type class path. Class should implement GrantTypeInterface. Default: Sainsburys\\Guzzle\\Oauth2\\GrantType\\ClientCredentials |
no | Sainsburys\\Guzzle\\Oauth2\\GrantType\\PasswordCredentialsSainsburys\\Guzzle\\Oauth2\\GrantType\\AuthorizationCodeSainsburys\\Guzzle\\Oauth2\\GrantType\\JwtBearer |
| persistent | Token will be stored in session unless grant_type is client credentials; in which case it will be stored in the app cache. Default: false |
no | |
| retry_limit | How many times request will be repeated on failure. Default: 5 |
no |
See more information about middleware here.
License
This middleware is licensed under the MIT License - see the LICENSE file for details
gregurco/guzzle-bundle-oauth2-plugin 适用场景与选型建议
gregurco/guzzle-bundle-oauth2-plugin 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 361.23k 次下载、GitHub Stars 达 13, 最近一次更新时间为 2017 年 11 月 03 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「framework」 「curl」 「http」 「rest」 「http client」 「plugin」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 gregurco/guzzle-bundle-oauth2-plugin 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 gregurco/guzzle-bundle-oauth2-plugin 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 gregurco/guzzle-bundle-oauth2-plugin 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
PHP Framework HLEB2 is the foundation of the web application. Provides ease of development and application performance.
cURL and cURL based Soap-Client for PHP
repository php library
Simple cURL wrapper
A fluent PHP CURL wrapper
http客户端
统计信息
- 总下载量: 361.23k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 13
- 点击次数: 30
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2017-11-03