From 64bba5defc7ba3ba0a0a9398f0e6774585fe5d01 Mon Sep 17 00:00:00 2001 From: Stanimir Stoyanov Date: Thu, 31 Dec 2020 08:33:08 +0200 Subject: [PATCH 01/35] Adding oauth2-firefly-iii client --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index 1080282b..b06522dc 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -51,6 +51,7 @@ Gateway | Composer Package | Maintainer [ESIA](https://packagist.org/packages/ekapusta/oauth2-esia) | ekapusta/oauth2-esia | [Alexander Ustimenko](https://github.com/ekapusta) [EVE Online](https://github.com/killmails/oauth2-eve) | killmails/oauth2-eve | [Oizys](https://github.com/syzio) [Eventbrite](https://github.com/stevenmaguire/oauth2-eventbrite) | stevenmaguire/oauth2-eventbrite | [Steven Maguire](https://github.com/stevenmaguire) +[Firefly III](https://github.com/StanSoftBG/oauth2-firefly-iii) | stansoft/oauth2-firefly-iii | [Stanimir Stoyanov](https://github.com/stratoss) [Fitbit](https://github.com/djchen/oauth2-fitbit) | djchen/oauth2-fitbit | [Dan Chen](https://github.com/djchen) [FormAssembly](https://github.com/FatherShawn/oauth2-formassembly) | fathershawn/oauth2-formassembly | [Shawn Duncan](https://github.com/FatherShawn) [Foursquare](https://github.com/stevenmaguire/oauth2-foursquare) | stevenmaguire/oauth2-foursquare | [Steven Maguire](https://github.com/stevenmaguire) From a2afeb8e9bf9db2b6dfee4ca567ea9d19987b21c Mon Sep 17 00:00:00 2001 From: Ben Ramsey Date: Wed, 22 Dec 2021 10:22:32 -0600 Subject: [PATCH 02/35] Adjust CI workflow --- .github/workflows/continuous-integration.yml | 51 ++++++++++---------- 1 file changed, 25 insertions(+), 26 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index da459b99..7deebcc9 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -16,19 +16,15 @@ jobs: lint: name: "Lint" runs-on: "ubuntu-latest" - strategy: fail-fast: false matrix: php-version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] - - continue-on-error: ${{ matrix.php-version == '8.1' }} - steps: - uses: "actions/checkout@v2" - uses: "shivammathur/setup-php@v2" with: - php-version: "7.4" + php-version: "${{ matrix.php-version }}" coverage: "none" ini-values: "memory_limit=-1, zend.assertions=1, error_reporting=-1, display_errors=On" tools: "composer:v2" @@ -43,7 +39,7 @@ jobs: - uses: "actions/checkout@v2" - uses: "shivammathur/setup-php@v2" with: - php-version: "7.4" + php-version: "latest" coverage: "none" ini-values: "memory_limit=-1" tools: "composer:v2" @@ -51,39 +47,42 @@ jobs: - name: "Check coding standards" run: "./vendor/bin/phpcs src --standard=psr2 -sp --colors" + coverage: + name: "Coverage" + runs-on: "ubuntu-latest" + steps: + - uses: "actions/checkout@v2" + - uses: "shivammathur/setup-php@v2" + with: + php-version: "latest" + coverage: "pcov" + ini-values: "memory_limit=-1, zend.assertions=1, error_reporting=-1, display_errors=On" + tools: "composer" + - name: "Prepare for tests" + run: "mkdir -p build/logs" + - uses: "ramsey/composer-install@v1" + - name: "Run unit tests" + run: "./vendor/bin/phpunit --colors=always --coverage-clover build/logs/clover.xml --coverage-text" + - name: "Publish coverage report to Codecov" + uses: "codecov/codecov-action@v1" + unit-tests: name: "Unit Tests" runs-on: "ubuntu-latest" - continue-on-error: ${{ matrix.experimental }} strategy: fail-fast: false matrix: - php-version: - - "5.6" - - "7.0" - - "7.1" - - "7.2" - - "7.3" - - "7.4" - - "8.0" - - "8.1" - experimental: - - false - + php-version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] steps: - uses: "actions/checkout@v2" - uses: "shivammathur/setup-php@v2" with: php-version: "${{ matrix.php-version }}" - coverage: "pcov" + coverage: "none" ini-values: "memory_limit=-1, zend.assertions=1, error_reporting=-1, display_errors=On" - tools: "composer:v2" + tools: "composer" - name: "Prepare for tests" run: "mkdir -p build/logs" - uses: "ramsey/composer-install@v1" - with: - composer-options: "${{ matrix.composer-options }}" - name: "Run unit tests" - run: "./vendor/bin/phpunit --colors=always --coverage-clover build/logs/clover.xml" - - name: "Publish coverage report to Codecov" - uses: "codecov/codecov-action@v1" + run: "./vendor/bin/phpunit --colors=always" From 2334c249907190c132364f5dae0287ab8666aa19 Mon Sep 17 00:00:00 2001 From: Ben Ramsey Date: Wed, 22 Dec 2021 10:42:49 -0600 Subject: [PATCH 03/35] Prepare for release 2.6.1 --- CHANGELOG.md | 8 ++++++++ README.md | 1 + 2 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8db2e264..6247164d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,13 @@ # OAuth 2.0 Client Changelog +## 2.6.1 + +_Released: 2021-12-22_ + +* Fix deprecation notices, providing full support for PHP 8.1 + [#919](https://github.com/thephpleague/oauth2-client/pull/919) + [#920](https://github.com/thephpleague/oauth2-client/pull/920) + ## 2.6.0 _Released: 2020-10-27_ diff --git a/README.md b/README.md index 96f4b05e..f35d53e8 100644 --- a/README.md +++ b/README.md @@ -24,6 +24,7 @@ This package is compliant with [PSR-1][], [PSR-2][], [PSR-4][], and [PSR-7][]. I We support the following versions of PHP: +* PHP 8.1 * PHP 8.0 * PHP 7.4 * PHP 7.3 From 66a41688a8cf37eddea04865d45d798f5e34f155 Mon Sep 17 00:00:00 2001 From: Juliette <663378+jrfnl@users.noreply.github.com> Date: Wed, 5 Jan 2022 02:40:26 +0100 Subject: [PATCH 04/35] GH Actions: version update for `ramsey/composer-install` (#930) The action used to install Composer packages and handle the caching has released a new major (and some follow-up patch releases), which means, the action reference needs to be updated to benefit from it. Refs: * https://github.com/ramsey/composer-install/releases/tag/2.0.0 * https://github.com/ramsey/composer-install/releases/tag/2.0.1 * https://github.com/ramsey/composer-install/releases/tag/2.0.2 Co-authored-by: jrfnl --- .github/workflows/continuous-integration.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 7deebcc9..36cc0979 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -28,7 +28,7 @@ jobs: coverage: "none" ini-values: "memory_limit=-1, zend.assertions=1, error_reporting=-1, display_errors=On" tools: "composer:v2" - - uses: "ramsey/composer-install@v1" + - uses: "ramsey/composer-install@v2" - name: "Lint the PHP source code" run: "./vendor/bin/parallel-lint src test" @@ -43,7 +43,7 @@ jobs: coverage: "none" ini-values: "memory_limit=-1" tools: "composer:v2" - - uses: "ramsey/composer-install@v1" + - uses: "ramsey/composer-install@v2" - name: "Check coding standards" run: "./vendor/bin/phpcs src --standard=psr2 -sp --colors" @@ -60,7 +60,7 @@ jobs: tools: "composer" - name: "Prepare for tests" run: "mkdir -p build/logs" - - uses: "ramsey/composer-install@v1" + - uses: "ramsey/composer-install@v2" - name: "Run unit tests" run: "./vendor/bin/phpunit --colors=always --coverage-clover build/logs/clover.xml --coverage-text" - name: "Publish coverage report to Codecov" @@ -83,6 +83,6 @@ jobs: tools: "composer" - name: "Prepare for tests" run: "mkdir -p build/logs" - - uses: "ramsey/composer-install@v1" + - uses: "ramsey/composer-install@v2" - name: "Run unit tests" run: "./vendor/bin/phpunit --colors=always" From 6ffaa52a2cc04e6612de3260cbfb33145036d942 Mon Sep 17 00:00:00 2001 From: Juliette <663378+jrfnl@users.noreply.github.com> Date: Wed, 5 Jan 2022 02:40:47 +0100 Subject: [PATCH 05/35] GH Actions: version update for `codecov/codecov-action` (#931) A while back the `codecov/codecov-action` released a new major. As per the release notes: > On February 1, 2022, the v1 uploader will be full sunset and no longer function. This is due to the deprecation of the underlying bash uploader. This version uses the new uploader. Considering Feb 2022 is creeping closer every day, updating seems prudent. > Multiple fields have not been transferred from the bash uploader or have been deprecated. Notably many of the `functionalities` and `gcov_` arguments have been removed. This repo does not seem to be affected by this. Refs: * https://github.com/codecov/codecov-action/releases/tag/v2.0.0 * https://github.com/codecov/codecov-action/releases/tag/v2.0.1 * https://github.com/codecov/codecov-action/releases/tag/v2.0.2 * https://github.com/codecov/codecov-action/releases/tag/v2.0.3 * https://github.com/codecov/codecov-action/releases/tag/v2.1.0 Co-authored-by: jrfnl --- .github/workflows/continuous-integration.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 36cc0979..4a8cf1b0 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -64,7 +64,7 @@ jobs: - name: "Run unit tests" run: "./vendor/bin/phpunit --colors=always --coverage-clover build/logs/clover.xml --coverage-text" - name: "Publish coverage report to Codecov" - uses: "codecov/codecov-action@v1" + uses: "codecov/codecov-action@v2" unit-tests: name: "Unit Tests" From 8c7498c14959b98d4143a8ef91e895f353381628 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 4 Jan 2022 20:04:56 -0600 Subject: [PATCH 06/35] Bump github-pages from 222 to 223 in /docs (#932) Bumps [github-pages](https://github.com/github/pages-gem) from 222 to 223. - [Release notes](https://github.com/github/pages-gem/releases) - [Commits](https://github.com/github/pages-gem/compare/v222...v223) --- updated-dependencies: - dependency-name: github-pages dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 304df935..cf75cab6 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.4.1) + activesupport (6.0.4.4) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -48,7 +48,7 @@ GEM ffi (1.15.4) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (222) + github-pages (223) github-pages-health-check (= 1.17.9) jekyll (= 3.9.0) jekyll-avatar (= 0.7.0) @@ -58,6 +58,7 @@ GEM jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) jekyll-github-metadata (= 2.13.0) + jekyll-include-cache (= 0.2.1) jekyll-mentions (= 1.6.0) jekyll-optional-front-matter (= 0.3.2) jekyll-paginate (= 1.1.0) @@ -138,6 +139,8 @@ GEM jekyll-github-metadata (2.13.0) jekyll (>= 3.4, < 5.0) octokit (~> 4.0, != 4.4.0) + jekyll-include-cache (0.2.1) + jekyll (>= 3.7, < 5.0) jekyll-mentions (1.6.0) html-pipeline (~> 2.3) jekyll (>= 3.7, < 5.0) @@ -225,7 +228,7 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.14.4) + minitest (5.15.0) multipart-post (2.1.1) nokogiri (1.12.5) mini_portile2 (~> 2.6.1) @@ -272,7 +275,7 @@ GEM unf_ext unf_ext (0.0.8) unicode-display_width (1.8.0) - zeitwerk (2.5.1) + zeitwerk (2.5.2) PLATFORMS ruby From fc71fe3137a1e7ffdb827883e0291dc6d502d903 Mon Sep 17 00:00:00 2001 From: Menno Holtkamp Date: Fri, 25 Feb 2022 13:42:36 +0100 Subject: [PATCH 07/35] Allow mixed type response body --- src/Provider/Exception/IdentityProviderException.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Provider/Exception/IdentityProviderException.php b/src/Provider/Exception/IdentityProviderException.php index 52b7e035..55cb438f 100644 --- a/src/Provider/Exception/IdentityProviderException.php +++ b/src/Provider/Exception/IdentityProviderException.php @@ -27,7 +27,7 @@ class IdentityProviderException extends \Exception /** * @param string $message * @param int $code - * @param array|string $response The response body + * @param mixed $response The response body */ public function __construct($message, $code, $response) { @@ -39,7 +39,7 @@ public function __construct($message, $code, $response) /** * Returns the exception's response body. * - * @return array|string + * @return mixed */ public function getResponseBody() { From 2b800ca1cb8834b1fb603da5a1467b317af46c8b Mon Sep 17 00:00:00 2001 From: joseayram Date: Sat, 9 Apr 2022 08:36:36 -0400 Subject: [PATCH 08/35] Added oauth2-lichess Client support --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..8ad2de87 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -74,6 +74,7 @@ Gateway | Composer Package | Maintainer [Imgur](https://github.com/adam-paterson/oauth2-imgur) | adam-paterson/oauth2-imgur | [Adam Paterson](https://github.com/adam-paterson) [Jira](https://packagist.org/packages/mrjoops/oauth2-jira) | mrjoops/oauth2-jira | [Alexandre Lahure](https://github.com/mrjoops) [Keycloak](https://github.com/stevenmaguire/oauth2-keycloak) | stevenmaguire/oauth2-keycloak | [Steven Maguire](https://github.com/stevenmaguire) +[Lichess](https://packagist.org/packages/joseayram/oauth2-lichess) | joseayram/oauth2-lichess | [José Ayram](https://github.com/joseayram) [Linode](https://packagist.org/packages/webinarium/oauth2-linode) | webinarium/oauth2-linode | [Artem Rodygin](https://github.com/webinarium) [Mailchimp](https://github.com/chadhutchins/oauth2-mailchimp) | chadhutchins/oauth2-mailchimp | [Chad Hutchins](https://github.com/chadhutchins) [Mail.ru](https://packagist.org/packages/aego/oauth2-mailru) | aego/oauth2-mailru | [Alexey](https://github.com/rakeev) From 63a1c4fff5cbffddf3b147175429e03d9abce160 Mon Sep 17 00:00:00 2001 From: proggeler Date: Wed, 13 Apr 2022 08:30:39 +0200 Subject: [PATCH 09/35] added trustpilot support to third party documentation --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..85221962 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -121,6 +121,7 @@ Gateway | Composer Package | Maintainer [ThirtySevenSignals](https://github.com/nilesuan/oauth2-thirtysevensignals) | nilesuan/oauth2-thirtysevensignals | [Nile Suan](https://github.com/nilesuan) [Trakt.tv](https://github.com/Bogstag/oauth2-trakt) | bogstag/oauth2-trakt | [Krister Bogstag](https://github.com/Bogstag/) [Trovo](https://github.com/artandor/oauth2-trovo) | artandor/oauth2-trovo | [Nicolas Mylle](https://github.com/artandor/) +[Trustpilot](https://github.com/dmt-software/oauth2-trustpilot) | dmt-software/oauth2-trustpilot | [DMT software](https://github.com/dmt-software/) [Twinfield](https://github.com/php-twinfield/twinfield) | php-twinfield/twinfield | [Mollie B.V.](https://github.com/mollie) [Twitch.tv](https://github.com/tpavlek/oauth2-twitch) | depotwarehouse/oauth2-twitch | [Troy Pavlek](https://github.com/tpavlek) [Twitch.tv (New API Helix)](https://github.com/vertisan/oauth2-twitch-helix) | vertisan/oauth2-twitch-helix | [Paweł Farys](https://github.com/vertisan) From f00714b91257a3a744344f28f617894e1e34ce57 Mon Sep 17 00:00:00 2001 From: Jonathon Hill Date: Fri, 15 Apr 2022 16:18:38 -0400 Subject: [PATCH 10/35] New provider: compwright/oauth2-servicetitan --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..af1aa834 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -106,6 +106,7 @@ Gateway | Composer Package | Maintainer [Resource Guru](https://github.com/adam-paterson/oauth2-resource-guru) | adam-paterson/oauth2-resource-guru | [Adam Paterson](https://github.com/adam-paterson) [Riot (RSO)](https://github.com/kdefives/oauth2-riot) | kdefives/oauth2-riot | [Kevin Defives](https://github.com/kdefives) [Salesforce](https://github.com/stevenmaguire/oauth2-salesforce) | stevenmaguire/oauth2-salesforce | [Steven Maguire](https://github.com/stevenmaguire) +[ServiceTitan](https://github.com/compwright/oauth2-servicetitan) | compwright/oauth2-servicetitan | [Jonathon Hill](https://compwright.com) [Shopify](https://github.com/multidimension-al/oauth2-shopify) | multidimensional/oauth2-shopify | [multidimension.al](https://multidimension.al/) [Slack](https://github.com/adam-paterson/oauth2-slack) | adam-paterson/oauth2-slack | [Adam Paterson](https://github.com/adam-paterson) [Snapchat](https://github.com/pbringetto/oauth2-snapchat) | pbringetto/oauth2-snapchat | [Paul Bringetto](https://github.com/pbringetto) From ae8fbac173f0f85dc68ffeb13c64315a48228d6c Mon Sep 17 00:00:00 2001 From: bastiaan Date: Mon, 25 Apr 2022 23:23:59 +0200 Subject: [PATCH 11/35] Add TikTok third-party provider --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..8fab6197 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -117,6 +117,7 @@ Gateway | Composer Package | Maintainer [Square](https://packagist.org/packages/wheniwork/oauth2-square) | wheniwork/oauth2-square | [Woody Gilk](https://github.com/shadowhand) [StackExchange](https://packagist.org/packages/alexmasterov/oauth2-stackexchange) | alexmasterov/oauth2-stackexchange | [Alex Masterov](https://github.com/AlexMasterov) [SuperJob](https://packagist.org/packages/alexmasterov/oauth2-superjob) | alexmasterov/oauth2-superjob | [Alex Masterov](https://github.com/AlexMasterov) +[TikTok](https://github.com/bastiaandewaele/oauth2-tiktok) | bastiaandewaele/oauth2-tiktok | [Bastiaan Dewaele](https://github.com/bastiaandewaele) [Thingiverse](https://packagist.org/packages/freshworkx/oauth2-thingiverse) | freshworkx/oauth2-thingiverse | [Jens Neumann](https://github.com/freshworkx) [ThirtySevenSignals](https://github.com/nilesuan/oauth2-thirtysevensignals) | nilesuan/oauth2-thirtysevensignals | [Nile Suan](https://github.com/nilesuan) [Trakt.tv](https://github.com/Bogstag/oauth2-trakt) | bogstag/oauth2-trakt | [Krister Bogstag](https://github.com/Bogstag/) From 6017642e29b7e8adbc0c3e33688140723ecebbe1 Mon Sep 17 00:00:00 2001 From: Ben Hyr <52321971+Austomos@users.noreply.github.com> Date: Tue, 17 May 2022 18:58:31 +0200 Subject: [PATCH 12/35] New Third-party Provider: Chaster App New third-party provider for the chaster.app, package austomos/oauthclient-chaster-app --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..4c4ee03f 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -34,6 +34,7 @@ Gateway | Composer Package | Maintainer [ColorMeShop](https://github.com/pepabo/oauth2-colormeshop) | pepabo/oauth2-colormeshop | [GMO Pepabo, Inc.](https://github.com/pepabo) [Canvas LMS](https://github.com/smtech/oauth2-canvaslms) | smtech/oauth2-canvaslms | [Seth Battis](https://github.com/battis) [concrete5](https://github.com/concrete5/oauth2-concrete5) | concrete5/oauth2-concrete5 | [Andrew Embler](https://github.com/aembler) +[Chaster App](https://github.com/Austomos/oauth2-chaster-app) | austomos/oauth2-chaster-app | [Ben Hyr](https://github.com/Austomos) [ChatWork](https://github.com/chatwork/oauth2-chatwork-php) | chatwork/oauth2-chatwork | [Yuta Adachi](https://github.com/ada-u) [Clever](https://github.com/schoolrunner/oauth2-clever) | schoolrunner/oauth2-clever | [Schoolrunner](https://github.com/schoolrunner) [CloudConvert](https://github.com/osavchenko/oauth2-cloudconvert) | osavchenko/oauth2-cloudconvert | [Oleksandr Savchenko](https://github.com/osavchenko) From 15b529cbcd25bc327a384b9a8f86068ce8d65f53 Mon Sep 17 00:00:00 2001 From: Evan Hildreth Date: Tue, 7 Jun 2022 22:36:57 -0400 Subject: [PATCH 13/35] Add smolblog/oauth2-twitter as a twitter library --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..55aef8e5 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -124,6 +124,7 @@ Gateway | Composer Package | Maintainer [Twinfield](https://github.com/php-twinfield/twinfield) | php-twinfield/twinfield | [Mollie B.V.](https://github.com/mollie) [Twitch.tv](https://github.com/tpavlek/oauth2-twitch) | depotwarehouse/oauth2-twitch | [Troy Pavlek](https://github.com/tpavlek) [Twitch.tv (New API Helix)](https://github.com/vertisan/oauth2-twitch-helix) | vertisan/oauth2-twitch-helix | [Paweł Farys](https://github.com/vertisan) +[Twitter](https://github.com/smolblog/oauth2-twitter) | smolblog/oauth2-twitter | [Evan Hildreth](https://github.com/oddevan) [Uber](https://github.com/stevenmaguire/oauth2-uber) | stevenmaguire/oauth2-uber | [Steven Maguire](https://github.com/stevenmaguire) [Unsplash](https://github.com/hughbertd/oauth2-unsplash) | hughbertd/oauth2-unsplash | [Hugh Downer](https://github.com/hughbertd) [Untappd](https://github.com/shadowhand/oauth2-untappd) | shadowhand/oauth2-untappd | [Woody Gilk](https://github.com/shadowhand) From 69e0aa2752ee4e0dfbf6252409c9eecc3d9d9434 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 22 Jul 2022 00:59:08 +0000 Subject: [PATCH 14/35] Bump tzinfo from 1.2.9 to 1.2.10 in /docs Bumps [tzinfo](https://github.com/tzinfo/tzinfo) from 1.2.9 to 1.2.10. - [Release notes](https://github.com/tzinfo/tzinfo/releases) - [Changelog](https://github.com/tzinfo/tzinfo/blob/master/CHANGES.md) - [Commits](https://github.com/tzinfo/tzinfo/compare/v1.2.9...v1.2.10) --- updated-dependencies: - dependency-name: tzinfo dependency-type: indirect ... Signed-off-by: dependabot[bot] --- docs/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index cf75cab6..12cab582 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -269,7 +269,7 @@ GEM thread_safe (0.3.6) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.9) + tzinfo (1.2.10) thread_safe (~> 0.1) unf (0.1.4) unf_ext From 8351d188945af971c759eb4a1f405cc523be35dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Zecca?= Date: Thu, 4 Aug 2022 11:05:43 +0200 Subject: [PATCH 15/35] Add Monizze provider --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..91179d3a 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -85,6 +85,7 @@ Gateway | Composer Package | Maintainer [MercadoLibre](https://github.com/docta/oauth2-mercadolibre) | docta/oauth2-mercadolibre | [Lucas Banegas](https://github.com/lucascono) [Microsoft](https://github.com/stevenmaguire/oauth2-microsoft) | stevenmaguire/oauth2-microsoft | [Steven Maguire](https://github.com/stevenmaguire) [Mollie](https://github.com/mollie/oauth2-mollie-php) | mollie/oauth2-mollie-php | [Mollie](https://github.com/mollie) +[Monizze](https://github.com/jzecca/oauth2-monizze) | jzecca/oauth2-monizze | [Jérôme Zecca](https://github.com/jzecca) [Mixer](https://gitlab.com/morgann/oauth2-mixer) | morgann/oauth2-mixer | [Morgann](https://gitlab.com/morgann/oauth2-mixer) [Naver](https://packagist.org/packages/deminoth/oauth2-naver) | deminoth/oauth2-naver | [SangYeob Bono Yu](https://github.com/deminoth) [Netatmo](https://github.com/rugaard/oauth2-netatmo) | rugaard/oauth2-netatmo | [Morten Rugaard](https://github.com/rugaard) From 998807d9985aae9e193fb4961d32fd232716a421 Mon Sep 17 00:00:00 2001 From: Martin de Keijzer Date: Thu, 11 Aug 2022 13:43:20 +0200 Subject: [PATCH 16/35] Add SoundCloud OAuth2 connector --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..99d72610 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -109,6 +109,7 @@ Gateway | Composer Package | Maintainer [Shopify](https://github.com/multidimension-al/oauth2-shopify) | multidimensional/oauth2-shopify | [multidimension.al](https://multidimension.al/) [Slack](https://github.com/adam-paterson/oauth2-slack) | adam-paterson/oauth2-slack | [Adam Paterson](https://github.com/adam-paterson) [Snapchat](https://github.com/pbringetto/oauth2-snapchat) | pbringetto/oauth2-snapchat | [Paul Bringetto](https://github.com/pbringetto) +[SoundCloud](https://packagist.org/packages/martin1982/oauth2-soundcloud) | martin1982/oauth2-soundcloud | [Martin de Keijzer](https://github.com/martin1982) [Spotify](https://packagist.org/packages/audeio/spotify-web-api) | audeio/spotify-web-api | [Jonjo McKay](https://github.com/jonjomckay) [Spotify](https://packagist.org/packages/kerox/oauth2-spotify) | kerox/oauth2-spotify | [Romain Monteil](https://github.com/ker0x) [SteemConnect V2](https://github.com/hernandev/oauth2-sc2) | hernandev/oauth2-sc2 | [Diego Hernandes](https://github.com/hernandev) From 85832709342332ad5c41bcbddd052c59663312b3 Mon Sep 17 00:00:00 2001 From: globalvisionmedia Date: Mon, 12 Sep 2022 19:37:01 +1000 Subject: [PATCH 17/35] Update thirdparty.md --- docs/providers/thirdparty.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..f70192b9 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -65,7 +65,8 @@ Gateway | Composer Package | Maintainer [GitLab](https://github.com/omines/oauth2-gitlab) | omines/oauth2-gitlab | [Niels Keurentjes](https://github.com/curry684) [Gumroad](https://github.com/Alofoxx/oauth2-gumroad) | alofoxx/oauth2-gumroad | [Alofoxx](https://github.com/Alofoxx) [GotoWebinar](https://github.com/dalpras/oauth2-gotowebinar) | dalpras/oauth2-gotowebinar | [Stefano Dal Prà](https://github.com/dalpras) -[Harvest](https://github.com/nilesuan/oauth2-harvest) | nilesuan/oauth2-harvest | [Nile Suan](https://github.com/nilesuan) +[Harvest API v2](https://github.com/globalvisionmedia/oauth2-harvest) | globalvisionmedia/oauth2-harvest | [Peter Hawkins](https://www.globalvision.com.au) +[Harvest API v1](https://github.com/nilesuan/oauth2-harvest) | nilesuan/oauth2-harvest | [Nile Suan](https://github.com/nilesuan) [HeadHunter](https://packagist.org/packages/alexmasterov/oauth2-headhunter) | alexmasterov/oauth2-headhunter | [Alex Masterov](https://github.com/AlexMasterov) [Heroku](https://github.com/stevenmaguire/oauth2-heroku) | stevenmaguire/oauth2-heroku | [Steven Maguire](https://github.com/stevenmaguire) [Housecall Pro](https://github.com/compwright/oauth2-housecallpro) | compwright/oauth2-housecallpro | [Jonathon Hill](https://github.com/compwright) @@ -84,6 +85,7 @@ Gateway | Composer Package | Maintainer [Meetup](https://packagist.org/packages/wittestier/oauth2-meetup) | wittestier/oauth2-meetup | [WitteStier](https://gitlab.com/WitteStier) [MercadoLibre](https://github.com/docta/oauth2-mercadolibre) | docta/oauth2-mercadolibre | [Lucas Banegas](https://github.com/lucascono) [Microsoft](https://github.com/stevenmaguire/oauth2-microsoft) | stevenmaguire/oauth2-microsoft | [Steven Maguire](https://github.com/stevenmaguire) +[MYOB](https://github.com/globalvisionmedia/oauth2-myob) | globalvisionmedia/oauth2-myob | [Peter Hawkins](https://www.globalvision.com.au) [Mollie](https://github.com/mollie/oauth2-mollie-php) | mollie/oauth2-mollie-php | [Mollie](https://github.com/mollie) [Mixer](https://gitlab.com/morgann/oauth2-mixer) | morgann/oauth2-mixer | [Morgann](https://gitlab.com/morgann/oauth2-mixer) [Naver](https://packagist.org/packages/deminoth/oauth2-naver) | deminoth/oauth2-naver | [SangYeob Bono Yu](https://github.com/deminoth) From 43c59dd35296f0fce59fc6726517c67e3d3be98c Mon Sep 17 00:00:00 2001 From: rhertogh Date: Mon, 12 Sep 2022 19:12:20 +0200 Subject: [PATCH 18/35] Add support for PKCE (Proof Key for Code Exchange [RFC 7636]) (#901) --- docs/usage.md | 34 ++++++ src/Provider/AbstractProvider.php | 98 +++++++++++++++++ src/Provider/GenericProvider.php | 14 +++ test/src/Provider/AbstractProviderTest.php | 116 +++++++++++++++++++++ test/src/Provider/Fake.php | 24 +++++ test/src/Provider/GenericProviderTest.php | 5 + 6 files changed, 291 insertions(+) diff --git a/docs/usage.md b/docs/usage.md index 5950fd95..047b1bf7 100755 --- a/docs/usage.md +++ b/docs/usage.md @@ -16,6 +16,7 @@ The following example uses the out-of-the-box `GenericProvider` provided by this The *authorization code* grant type is the most common grant type used when authenticating users with a third-party service. This grant type utilizes a *client* (this library), a *service provider* (the server), and a *resource owner* (the account with credentials to a protected—or owned—resource) to request access to resources owned by the user. This is often referred to as _3-legged OAuth_, since there are three parties involved. + ```php $provider = new \League\OAuth2\Client\Provider\GenericProvider([ 'clientId' => 'XXXXXX', // The client ID assigned to you by the provider @@ -37,6 +38,10 @@ if (!isset($_GET['code'])) { // Get the state generated for you and store it to the session. $_SESSION['oauth2state'] = $provider->getState(); + // Optional, only required when PKCE is enabled. + // Get the PKCE code generated for you and store it to the session. + $_SESSION['oauth2pkceCode'] = $provider->getPkceCode(); + // Redirect the user to the authorization URL. header('Location: ' . $authorizationUrl); exit; @@ -53,6 +58,10 @@ if (!isset($_GET['code'])) { } else { try { + + // Optional, only required when PKCE is enabled. + // Restore the PKCE code stored in the session. + $provider->setPkceCode($_SESSION['oauth2pkceCode']); // Try to get an access token using the authorization code grant. $accessToken = $provider->getAccessToken('authorization_code', [ @@ -90,6 +99,31 @@ if (!isset($_GET['code'])) { } ``` +### Authorization Code Grant with PKCE + +To enable PKCE (Proof Key for Code Exchange) you can set the `pkceMethod` option for the provider. +Supported methods are: +- `S256` Recommended method. The code challenge will be hashed with sha256. +- `plain` **NOT** recommended. The code challenge will be sent as plain text. Only use this if no other option is possible. + +You can configure the PKCE method as follows: +```php +$provider = new \League\OAuth2\Client\Provider\GenericProvider([ + // ... + // other options + // ... + 'pkceMethod' => \League\OAuth2\Client\Provider\GenericProvider::PKCE_METHOD_S256 +]); +``` +The PKCE code needs to be used between requests and therefore be saved and restored, usually via the session. +In the [example](#authorization-code-grant-example) above this is done as follows: +```php +// Store the PKCE code after the `getAuthorizationUrl()` call. +$_SESSION['oauth2pkceCode'] = $provider->getPkceCode(); +// ... +// Restore the PKCE code before the `getAccessToken()` call. +$provider->setPkceCode($_SESSION['oauth2pkceCode']); +``` Refreshing a Token ------------------ diff --git a/src/Provider/AbstractProvider.php b/src/Provider/AbstractProvider.php index d1679998..2263e9da 100644 --- a/src/Provider/AbstractProvider.php +++ b/src/Provider/AbstractProvider.php @@ -17,6 +17,7 @@ use GuzzleHttp\Client as HttpClient; use GuzzleHttp\ClientInterface as HttpClientInterface; use GuzzleHttp\Exception\BadResponseException; +use InvalidArgumentException; use League\OAuth2\Client\Grant\AbstractGrant; use League\OAuth2\Client\Grant\GrantFactory; use League\OAuth2\Client\OptionProvider\OptionProviderInterface; @@ -58,6 +59,19 @@ abstract class AbstractProvider */ const METHOD_POST = 'POST'; + /** + * @var string PKCE method used to fetch authorization token. + * The PKCE code challenge will be hashed with sha256 (recommended). + */ + const PKCE_METHOD_S256 = 'S256'; + + /** + * @var string PKCE method used to fetch authorization token. + * The PKCE code challenge will be sent as plain text, this is NOT recommended. + * Only use `plain` if no other option is possible. + */ + const PKCE_METHOD_PLAIN = 'plain'; + /** * @var string */ @@ -78,6 +92,11 @@ abstract class AbstractProvider */ protected $state; + /** + * @var string|null + */ + protected $pkceCode = null; + /** * @var GrantFactory */ @@ -264,6 +283,32 @@ public function getState() return $this->state; } + /** + * Set the value of the pkceCode parameter. + * + * When using PKCE this should be set before requesting an access token. + * + * @param string $pkceCode + * @return self + */ + public function setPkceCode($pkceCode) + { + $this->pkceCode = $pkceCode; + return $this; + } + + /** + * Returns the current value of the pkceCode parameter. + * + * This can be accessed by the redirect handler during authorization. + * + * @return string|null + */ + public function getPkceCode() + { + return $this->pkceCode; + } + /** * Returns the base URL for authorizing a client. * @@ -305,6 +350,27 @@ protected function getRandomState($length = 32) return bin2hex(random_bytes($length / 2)); } + /** + * Returns a new random string to use as PKCE code_verifier and + * hashed as code_challenge parameters in an authorization flow. + * Must be between 43 and 128 characters long. + * + * @param int $length Length of the random string to be generated. + * @return string + */ + protected function getRandomPkceCode($length = 64) + { + return substr( + strtr( + base64_encode(random_bytes($length)), + '+/', + '-_' + ), + 0, + $length + ); + } + /** * Returns the default scopes used by this provider. * @@ -326,6 +392,14 @@ protected function getScopeSeparator() return ','; } + /** + * @return string|null + */ + protected function getPkceMethod() + { + return null; + } + /** * Returns authorization parameters based on provided options. * @@ -355,6 +429,26 @@ protected function getAuthorizationParameters(array $options) // Store the state as it may need to be accessed later on. $this->state = $options['state']; + $pkceMethod = $this->getPkceMethod(); + if (!empty($pkceMethod)) { + $this->pkceCode = $this->getRandomPkceCode(); + if ($pkceMethod === static::PKCE_METHOD_S256) { + $options['code_challenge'] = trim( + strtr( + base64_encode(hash('sha256', $this->pkceCode, true)), + '+/', + '-_' + ), + '=' + ); + } elseif ($pkceMethod === static::PKCE_METHOD_PLAIN) { + $options['code_challenge'] = $this->pkceCode; + } else { + throw new InvalidArgumentException('Unknown PKCE method "' . $pkceMethod . '".'); + } + $options['code_challenge_method'] = $pkceMethod; + } + // Business code layer might set a different redirect_uri parameter // depending on the context, leave it as-is if (!isset($options['redirect_uri'])) { @@ -532,6 +626,10 @@ public function getAccessToken($grant, array $options = []) 'redirect_uri' => $this->redirectUri, ]; + if (!empty($this->pkceCode)) { + $params['code_verifier'] = $this->pkceCode; + } + $params = $grant->prepareRequestParameters($params, $options); $request = $this->getAccessTokenRequest($params); $response = $this->getParsedResponse($request); diff --git a/src/Provider/GenericProvider.php b/src/Provider/GenericProvider.php index 74393ffd..0fc95f25 100644 --- a/src/Provider/GenericProvider.php +++ b/src/Provider/GenericProvider.php @@ -78,6 +78,11 @@ class GenericProvider extends AbstractProvider */ private $responseResourceOwnerId = 'id'; + /** + * @var string|null + */ + private $pkceMethod = null; + /** * @param array $options * @param array $collaborators @@ -114,6 +119,7 @@ protected function getConfigurableOptions() 'responseCode', 'responseResourceOwnerId', 'scopes', + 'pkceMethod', ]); } @@ -205,6 +211,14 @@ protected function getScopeSeparator() return $this->scopeSeparator ?: parent::getScopeSeparator(); } + /** + * @inheritdoc + */ + protected function getPkceMethod() + { + return $this->pkceMethod ?: parent::getPkceMethod(); + } + /** * @inheritdoc */ diff --git a/test/src/Provider/AbstractProviderTest.php b/test/src/Provider/AbstractProviderTest.php index bf24ba38..b9ebf6f1 100644 --- a/test/src/Provider/AbstractProviderTest.php +++ b/test/src/Provider/AbstractProviderTest.php @@ -332,6 +332,122 @@ public function testAuthorizationStateIsRandom() } } + public function testSetGetPkceCode() + { + $pkceCode = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_'; + + $provider = $this->getMockProvider(); + $this->assertEquals($provider, $provider->setPkceCode($pkceCode)); + $this->assertEquals($pkceCode, $provider->getPkceCode()); + } + + /** + * @dataProvider pkceMethodProvider + */ + public function testPkceMethod($pkceMethod, $pkceCode, $expectedChallenge) + { + $provider = $this->getMockProvider(); + $provider->setPkceMethod($pkceMethod); + $provider->setFixedPkceCode($pkceCode); + + $url = $provider->getAuthorizationUrl(); + $this->assertSame($pkceCode, $provider->getPkceCode()); + + parse_str(parse_url($url, PHP_URL_QUERY), $qs); + $this->assertArrayHasKey('code_challenge', $qs); + $this->assertArrayHasKey('code_challenge_method', $qs); + $this->assertSame($pkceMethod, $qs['code_challenge_method']); + $this->assertSame($expectedChallenge, $qs['code_challenge']); + + // Simulate re-initialization of provider after authorization request + $provider = $this->getMockProvider(); + + $raw_response = ['access_token' => 'okay', 'expires' => time() + 3600, 'resource_owner_id' => 3]; + $stream = Mockery::mock(StreamInterface::class); + $stream + ->shouldReceive('__toString') + ->once() + ->andReturn(json_encode($raw_response)); + + $response = Mockery::mock(ResponseInterface::class); + $response + ->shouldReceive('getBody') + ->once() + ->andReturn($stream); + $response + ->shouldReceive('getHeader') + ->once() + ->with('content-type') + ->andReturn('application/json'); + + $client = Mockery::spy(ClientInterface::class, [ + 'send' => $response, + ]); + $provider->setHttpClient($client); + + // restore $pkceCode (normally done by client from session) + $provider->setPkceCode($pkceCode); + + $provider->getAccessToken('authorization_code', ['code' => 'mock_authorization_code']); + + $client + ->shouldHaveReceived('send') + ->once() + ->withArgs(function ($request) use ($pkceCode) { + parse_str((string)$request->getBody(), $body); + return $body['code_verifier'] === $pkceCode; + }); + } + + public function pkceMethodProvider() + { + return [ + [ + AbstractProvider::PKCE_METHOD_S256, + '1234567890123456789012345678901234567890', + 'pOvdVBRUuEzGcMnx9VCLr2f_0_5ZuIMmeAh4H5kqCx0', + ], + [ + AbstractProvider::PKCE_METHOD_PLAIN, + '1234567890123456789012345678901234567890', + '1234567890123456789012345678901234567890', + ], + ]; + } + + public function testInvalidPkceMethod() + { + $provider = $this->getMockProvider(); + $provider->setPkceMethod('non-existing'); + + $this->expectExceptionMessage('Unknown PKCE method "non-existing".'); + $provider->getAuthorizationUrl(); + } + + public function testPkceCodeIsRandom() + { + $last = null; + $provider = $this->getMockProvider(); + $provider->setPkceMethod('S256'); + + for ($i = 0; $i < 100; $i++) { + // Repeat the test multiple times to verify code_challenge changes + $url = $provider->getAuthorizationUrl(); + + parse_str(parse_url($url, PHP_URL_QUERY), $qs); + $this->assertTrue(1 === preg_match('/^[a-zA-Z0-9-_]{43}$/', $qs['code_challenge'])); + $this->assertNotSame($qs['code_challenge'], $last); + $last = $qs['code_challenge']; + } + } + + public function testPkceMethodIsDisabledByDefault() + { + $provider = $this->getAbstractProviderMock(); + $pkceMethod = $provider->getPkceMethod(); + $this->assertNull($pkceMethod); + } + public function testErrorResponsesCanBeCustomizedAtTheProvider() { $provider = new MockProvider([ diff --git a/test/src/Provider/Fake.php b/test/src/Provider/Fake.php index b0bedcbf..7a02b51a 100644 --- a/test/src/Provider/Fake.php +++ b/test/src/Provider/Fake.php @@ -14,6 +14,10 @@ class Fake extends AbstractProvider private $accessTokenMethod = 'POST'; + private $pkceMethod = null; + + private $fixedPkceCode = null; + public function getClientId() { return $this->clientId; @@ -59,6 +63,26 @@ public function getAccessTokenMethod() return $this->accessTokenMethod; } + public function setPkceMethod($method) + { + $this->pkceMethod = $method; + } + + public function getPkceMethod() + { + return $this->pkceMethod; + } + + public function setFixedPkceCode($code) + { + return $this->fixedPkceCode = $code; + } + + protected function getRandomPkceCode($length = 64) + { + return $this->fixedPkceCode ?: parent::getRandomPkceCode($length); + } + protected function createResourceOwner(array $response, AccessToken $token) { return new Fake\User($response); diff --git a/test/src/Provider/GenericProviderTest.php b/test/src/Provider/GenericProviderTest.php index ae3214f3..65fe93ca 100644 --- a/test/src/Provider/GenericProviderTest.php +++ b/test/src/Provider/GenericProviderTest.php @@ -55,6 +55,7 @@ public function testConfigurableOptions() 'responseCode' => 'mock_code', 'responseResourceOwnerId' => 'mock_response_uid', 'scopes' => ['mock', 'scopes'], + 'pkceMethod' => 'S256', ]; $provider = new GenericProvider($options + [ @@ -88,6 +89,10 @@ public function testConfigurableOptions() $getScopeSeparator = $reflection->getMethod('getScopeSeparator'); $getScopeSeparator->setAccessible(true); $this->assertEquals($options['scopeSeparator'], $getScopeSeparator->invoke($provider)); + + $getPkceMethod = $reflection->getMethod('getPkceMethod'); + $getPkceMethod->setAccessible(true); + $this->assertEquals($options['pkceMethod'], $getPkceMethod->invoke($provider)); } public function testResourceOwnerDetails() From 998348c442c5a186590fdd5a8976fc68bd7474b5 Mon Sep 17 00:00:00 2001 From: Chuck Burgess Date: Wed, 14 Sep 2022 22:53:24 -0600 Subject: [PATCH 19/35] New Etsy Provider Adding new 3rd Party Provider for Etsy --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..6d96975d 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -54,6 +54,7 @@ Gateway | Composer Package | Maintainer [Envato](https://github.com/dilab/envato-oauth2-provider) | dilab/envato-oauth2-provider | [Xu Ding](https://github.com/dilab) [Epic Games](https://github.com/MrPropre/oauth2-epicgames) | mrpropre/oauth2-epicgames | [Adrien Alais](https://github.com/MrPropre) [ESIA](https://packagist.org/packages/ekapusta/oauth2-esia) | ekapusta/oauth2-esia | [Alexander Ustimenko](https://github.com/ekapusta) +[Etsy](https://packagist.org/packages/startz/oauth2-etsy) | startz/oauth2-etsy | [Chuck Burgess](https://github.com/cdburgess) [EVE Online](https://github.com/killmails/oauth2-eve) | killmails/oauth2-eve | [Oizys](https://github.com/syzio) [Eventbrite](https://github.com/stevenmaguire/oauth2-eventbrite) | stevenmaguire/oauth2-eventbrite | [Steven Maguire](https://github.com/stevenmaguire) [Fitbit](https://github.com/djchen/oauth2-fitbit) | djchen/oauth2-fitbit | [Dan Chen](https://github.com/djchen) From 763106c6d1294fc1669c582ff249a06aa9b33e69 Mon Sep 17 00:00:00 2001 From: Bas van Dinther Date: Wed, 12 Oct 2022 09:33:09 +0200 Subject: [PATCH 20/35] Define null as allowed return type Static analysers will return an error when returning null instead of a string. --- src/Provider/AbstractProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Provider/AbstractProvider.php b/src/Provider/AbstractProvider.php index 2263e9da..a6c7a8fd 100644 --- a/src/Provider/AbstractProvider.php +++ b/src/Provider/AbstractProvider.php @@ -45,7 +45,7 @@ abstract class AbstractProvider use QueryBuilderTrait; /** - * @var string Key used in a token response to identify the resource owner. + * @var string|null Key used in a token response to identify the resource owner. */ const ACCESS_TOKEN_RESOURCE_OWNER_ID = null; From 1bd8d7b719bfe2be8dd081d0a3f81e031989dd31 Mon Sep 17 00:00:00 2001 From: Bas van Dinther Date: Wed, 12 Oct 2022 09:43:06 +0200 Subject: [PATCH 21/35] Add Genesys OAuth2 provider --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index aeabd759..cff69fce 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -61,6 +61,7 @@ Gateway | Composer Package | Maintainer [Foursquare](https://github.com/stevenmaguire/oauth2-foursquare) | stevenmaguire/oauth2-foursquare | [Steven Maguire](https://github.com/stevenmaguire) [FreeAgent](https://github.com/CloudManaged/oauth2-freeagent) | cloudmanaged/oauth2-freeagent | *Unmaintained* [FreshBooks](https://github.com/zerospam/oauth2-freshbooks) | zerospam/oauth2-freshbooks | [Antoine Aflalo](https://github.com/Belphemur) +[Genesys](https://github.com/vormkracht10/oauth2-genesys) | vormkracht10/oauth2-genesys | [Vormkracht10](https://github.com/vormkracht10) [Geocaching](https://github.com/Surfoo/oauth2-geocaching) | surfoo/oauth2-geocaching | [Surfoo](https://github.com/Surfoo) [GitLab](https://github.com/omines/oauth2-gitlab) | omines/oauth2-gitlab | [Niels Keurentjes](https://github.com/curry684) [Gumroad](https://github.com/Alofoxx/oauth2-gumroad) | alofoxx/oauth2-gumroad | [Alofoxx](https://github.com/Alofoxx) From 7743617daf53e3f1563f09debc100e99784a3651 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 19 Oct 2022 11:43:38 +0000 Subject: [PATCH 22/35] Bump nokogiri from 1.12.5 to 1.13.9 in /docs Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.12.5 to 1.13.9. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.12.5...v1.13.9) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- docs/Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index cf75cab6..3d6d4409 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -223,15 +223,15 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.6.1) + mini_portile2 (2.8.0) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.15.0) multipart-post (2.1.1) - nokogiri (1.12.5) - mini_portile2 (~> 2.6.1) + nokogiri (1.13.9) + mini_portile2 (~> 2.8.0) racc (~> 1.4) octokit (4.21.0) faraday (>= 0.9) From b082a4fe8de3c4f36b94d0de2fcb05373645d59b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 26 Oct 2022 15:24:06 +0000 Subject: [PATCH 23/35] Bump github-pages from 223 to 227 in /docs Bumps [github-pages](https://github.com/github/pages-gem) from 223 to 227. - [Release notes](https://github.com/github/pages-gem/releases) - [Commits](https://github.com/github/pages-gem/compare/v223...v227) --- updated-dependencies: - dependency-name: github-pages dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- docs/Gemfile.lock | 95 +++++++++++++++++++---------------------------- 1 file changed, 38 insertions(+), 57 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index 3d6d4409..fcc2afb7 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,23 +1,22 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.4.4) + activesupport (6.0.6) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) tzinfo (~> 1.1) zeitwerk (~> 2.2, >= 2.2.2) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) + addressable (2.8.1) + public_suffix (>= 2.0.2, < 6.0) coffee-script (2.4.1) coffee-script-source execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.17.13) - ruby-enum (~> 0.5) - concurrent-ruby (1.1.9) - dnsruby (1.61.7) + commonmarker (0.23.6) + concurrent-ruby (1.1.10) + dnsruby (1.61.9) simpleidn (~> 0.1) em-websocket (0.5.3) eventmachine (>= 0.12.9) @@ -26,34 +25,19 @@ GEM ffi (>= 1.15.0) eventmachine (1.2.7) execjs (2.8.1) - faraday (1.8.0) - faraday-em_http (~> 1.0) - faraday-em_synchrony (~> 1.0) - faraday-excon (~> 1.1) - faraday-httpclient (~> 1.0.1) - faraday-net_http (~> 1.0) - faraday-net_http_persistent (~> 1.1) - faraday-patron (~> 1.0) - faraday-rack (~> 1.0) - multipart-post (>= 1.2, < 3) + faraday (2.6.0) + faraday-net_http (>= 2.0, < 3.1) ruby2_keywords (>= 0.0.4) - faraday-em_http (1.0.0) - faraday-em_synchrony (1.0.0) - faraday-excon (1.1.0) - faraday-httpclient (1.0.1) - faraday-net_http (1.0.1) - faraday-net_http_persistent (1.2.0) - faraday-patron (1.0.0) - faraday-rack (1.0.0) - ffi (1.15.4) + faraday-net_http (3.0.1) + ffi (1.15.5) forwardable-extended (2.6.0) gemoji (3.0.1) - github-pages (223) + github-pages (227) github-pages-health-check (= 1.17.9) - jekyll (= 3.9.0) + jekyll (= 3.9.2) jekyll-avatar (= 0.7.0) jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.1.6) + jekyll-commonmark-ghpages (= 0.2.0) jekyll-default-layout (= 0.1.4) jekyll-feed (= 0.15.1) jekyll-gist (= 1.5.0) @@ -67,7 +51,7 @@ GEM jekyll-relative-links (= 0.6.1) jekyll-remote-theme (= 0.4.3) jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.7.1) + jekyll-seo-tag (= 2.8.0) jekyll-sitemap (= 1.4.0) jekyll-swiss (= 1.0.0) jekyll-theme-architect (= 0.2.0) @@ -85,12 +69,12 @@ GEM jekyll-theme-time-machine (= 0.2.0) jekyll-titles-from-headings (= 0.5.3) jemoji (= 0.12.0) - kramdown (= 2.3.1) + kramdown (= 2.3.2) kramdown-parser-gfm (= 1.1.0) liquid (= 4.0.3) mercenary (~> 0.3) minima (= 2.5.1) - nokogiri (>= 1.12.5, < 2.0) + nokogiri (>= 1.13.6, < 2.0) rouge (= 3.26.0) terminal-table (~> 1.4) github-pages-health-check (1.17.9) @@ -99,13 +83,13 @@ GEM octokit (~> 4.0) public_suffix (>= 3.0, < 5.0) typhoeus (~> 1.3) - html-pipeline (2.14.0) + html-pipeline (2.14.3) activesupport (>= 2) nokogiri (>= 1.4) http_parser.rb (0.8.0) i18n (0.9.5) concurrent-ruby (~> 1.0) - jekyll (3.9.0) + jekyll (3.9.2) addressable (~> 2.4) colorator (~> 1.0) em-websocket (~> 0.5) @@ -123,12 +107,12 @@ GEM jekyll-coffeescript (1.1.1) coffee-script (~> 2.2) coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.3.1) - commonmarker (~> 0.14) - jekyll (>= 3.7, < 5.0) - jekyll-commonmark-ghpages (0.1.6) - commonmarker (~> 0.17.6) - jekyll-commonmark (~> 1.2) + jekyll-commonmark (1.4.0) + commonmarker (~> 0.22) + jekyll-commonmark-ghpages (0.2.0) + commonmarker (~> 0.23.4) + jekyll (~> 3.9.0) + jekyll-commonmark (~> 1.4.0) rouge (>= 2.0, < 4.0) jekyll-default-layout (0.1.4) jekyll (~> 3.0) @@ -160,7 +144,7 @@ GEM rubyzip (>= 1.3.0, < 3.0) jekyll-sass-converter (1.5.2) sass (~> 3.4) - jekyll-seo-tag (2.7.1) + jekyll-seo-tag (2.8.0) jekyll (>= 3.8, < 5.0) jekyll-sitemap (1.4.0) jekyll (>= 3.7, < 5.0) @@ -213,13 +197,13 @@ GEM gemoji (~> 3.0) html-pipeline (~> 2.2) jekyll (>= 3.0, < 5.0) - kramdown (2.3.1) + kramdown (2.3.2) rexml kramdown-parser-gfm (1.1.0) kramdown (~> 2.0) libv8 (3.16.14.19) liquid (4.0.3) - listen (3.7.0) + listen (3.7.1) rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) @@ -228,26 +212,23 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.15.0) - multipart-post (2.1.1) + minitest (5.16.3) nokogiri (1.13.9) mini_portile2 (~> 2.8.0) racc (~> 1.4) - octokit (4.21.0) - faraday (>= 0.9) - sawyer (~> 0.8.0, >= 0.5.3) + octokit (4.25.1) + faraday (>= 1, < 3) + sawyer (~> 0.9) pathutil (0.16.2) forwardable-extended (~> 2.6) - public_suffix (4.0.6) + public_suffix (4.0.7) racc (1.6.0) - rb-fsevent (0.11.0) + rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) ref (2.0.0) rexml (3.2.5) rouge (3.26.0) - ruby-enum (0.9.0) - i18n ruby2_keywords (0.0.5) rubyzip (2.3.2) safe_yaml (1.0.5) @@ -256,9 +237,9 @@ GEM sass-listen (4.0.0) rb-fsevent (~> 0.9, >= 0.9.4) rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.8.2) + sawyer (0.9.2) addressable (>= 2.3.5) - faraday (> 0.8, < 2.0) + faraday (>= 0.17.3, < 3) simpleidn (0.2.1) unf (~> 0.1.4) terminal-table (1.8.0) @@ -269,13 +250,13 @@ GEM thread_safe (0.3.6) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.9) + tzinfo (1.2.10) thread_safe (~> 0.1) unf (0.1.4) unf_ext - unf_ext (0.0.8) + unf_ext (0.0.8.2) unicode-display_width (1.8.0) - zeitwerk (2.5.2) + zeitwerk (2.6.1) PLATFORMS ruby From 25f6a272439da1e3b0ca59302a5f857b1ce02f62 Mon Sep 17 00:00:00 2001 From: Ian den Hartog Date: Sun, 16 Apr 2023 18:46:40 +0200 Subject: [PATCH 24/35] Add php 8.2 to test matrix (#996) --- .github/workflows/continuous-integration.yml | 4 ++-- test/src/Tool/ProviderRedirectTraitTest.php | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/continuous-integration.yml b/.github/workflows/continuous-integration.yml index 4a8cf1b0..baf35ea4 100644 --- a/.github/workflows/continuous-integration.yml +++ b/.github/workflows/continuous-integration.yml @@ -19,7 +19,7 @@ jobs: strategy: fail-fast: false matrix: - php-version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] + php-version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] steps: - uses: "actions/checkout@v2" - uses: "shivammathur/setup-php@v2" @@ -72,7 +72,7 @@ jobs: strategy: fail-fast: false matrix: - php-version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1' ] + php-version: [ '5.6', '7.0', '7.1', '7.2', '7.3', '7.4', '8.0', '8.1', '8.2' ] steps: - uses: "actions/checkout@v2" - uses: "shivammathur/setup-php@v2" diff --git a/test/src/Tool/ProviderRedirectTraitTest.php b/test/src/Tool/ProviderRedirectTraitTest.php index e761cd9b..dc06f45a 100644 --- a/test/src/Tool/ProviderRedirectTraitTest.php +++ b/test/src/Tool/ProviderRedirectTraitTest.php @@ -15,6 +15,11 @@ class ProviderRedirectTraitTest extends TestCase { use ProviderRedirectTrait; + /** + * @var ClientInterface + */ + private $httpClient; + public function getHttpClient() { return $this->httpClient; From 164ccb0287d4f1c2f1311c9c10ce16af1fbea77d Mon Sep 17 00:00:00 2001 From: Yassine Guedidi Date: Sun, 16 Apr 2023 18:52:46 +0200 Subject: [PATCH 25/35] Improve type of $options parameter in Provider\AbstractProvider::getAccessToken() (#997) --- src/Provider/AbstractProvider.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Provider/AbstractProvider.php b/src/Provider/AbstractProvider.php index a6c7a8fd..07f66b8c 100644 --- a/src/Provider/AbstractProvider.php +++ b/src/Provider/AbstractProvider.php @@ -611,8 +611,8 @@ protected function getAccessTokenRequest(array $params) /** * Requests an access token using a specified grant and option set. * - * @param mixed $grant - * @param array $options + * @param mixed $grant + * @param array $options * @throws IdentityProviderException * @return AccessTokenInterface */ From 9f66620b02b01e0c7e554acce49d2d5668d37239 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89mile=20Perron?= Date: Sun, 16 Apr 2023 13:38:42 -0400 Subject: [PATCH 26/35] docs: add koalatiapp/oauth2-webflow to list of providers (#992) --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index a718e319..b99a5095 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -145,6 +145,7 @@ Gateway | Composer Package | Maintainer [Vkontakte](https://github.com/j4k/oauth2-vkontakte) | j4k/oauth2-vkontakte | [Jack W](https://github.com/j4k) [Withings](https://github.com/waytohealth/oauth2-withings) | waytohealth/oauth2-withings | [Way to Health](https://github.com/waytohealth) [WordPress](https://github.com/krombox/oauth2-wordpress) | krombox/oauth2-wordpress | [Roman Kapustian](https://github.com/krombox) +[Webflow](https://github.com/koalatiapp/oauth2-webflow) | koalati/oauth2-webflow | [Koalati](https://github.com/koalatiapp) [Wechat](https://github.com/oakhope/oauth2-wechat) | oakhope/oauth2-wechat | [Benji Wang](https://github.com/oakhope) [WeCounsel](https://github.com/stevenmaguire/oauth2-wecounsel) | stevenmaguire/oauth2-wecounsel | [Steven Maguire](https://github.com/stevenmaguire) [Wrike](https://github.com/michaelKaefer/oauth2-wrike) | michaelkaefer/oauth2-wrike | [Michael Käfer](https://github.com/michaelKaefer) From e14639a11ba10c2ea80baee71638a42eebfac62a Mon Sep 17 00:00:00 2001 From: Ben Ramsey Date: Sun, 16 Apr 2023 12:50:16 -0500 Subject: [PATCH 27/35] chore: update CI build badge in README [skip ci] --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f35d53e8..cbb449d4 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ This package provides a base for integrating with [OAuth 2.0](http://oauth.net/2 [![Source Code](https://img.shields.io/badge/source-thephpleague/oauth2--client-blue.svg?style=flat-square)](https://github.com/thephpleague/oauth2-client) [![Latest Version](https://img.shields.io/github/release/thephpleague/oauth2-client.svg?style=flat-square)](https://github.com/thephpleague/oauth2-client/releases) [![Software License](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat-square)](https://github.com/thephpleague/oauth2-client/blob/master/LICENSE) -[![Build Status](https://img.shields.io/github/workflow/status/thephpleague/oauth2-client/CI?label=CI&logo=github&style=flat-square)](https://github.com/thephpleague/oauth2-client/actions?query=workflow%3ACI) +[![Build Status](https://img.shields.io/github/actions/workflow/status/thephpleague/oauth2-client/continuous-integration.yml?label=CI&logo=github&style=flat-square)](https://github.com/thephpleague/oauth2-client/actions?query=workflow%3ACI) [![Codecov Code Coverage](https://img.shields.io/codecov/c/gh/thephpleague/oauth2-client?label=codecov&logo=codecov&style=flat-square)](https://codecov.io/gh/thephpleague/oauth2-client) [![Total Downloads](https://img.shields.io/packagist/dt/league/oauth2-client.svg?style=flat-square)](https://packagist.org/packages/league/oauth2-client) From 1ba0591ad38d1818cb57cf883fe4a5d085029b29 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 12:53:14 -0500 Subject: [PATCH 28/35] Bump nokogiri from 1.13.9 to 1.14.3 in /docs (#999) Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.9 to 1.14.3. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.9...v1.14.3) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index fcc2afb7..c4683913 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -207,13 +207,13 @@ GEM rb-fsevent (~> 0.10, >= 0.10.3) rb-inotify (~> 0.9, >= 0.9.10) mercenary (0.3.6) - mini_portile2 (2.8.0) + mini_portile2 (2.8.1) minima (2.5.1) jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) minitest (5.16.3) - nokogiri (1.13.9) + nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) octokit (4.25.1) @@ -222,7 +222,7 @@ GEM pathutil (0.16.2) forwardable-extended (~> 2.6) public_suffix (4.0.7) - racc (1.6.0) + racc (1.6.2) rb-fsevent (0.11.2) rb-inotify (0.10.1) ffi (~> 1.0) From abeb824391757e906bae90c76837af590ac666f7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 12:53:37 -0500 Subject: [PATCH 29/35] Bump commonmarker from 0.23.6 to 0.23.9 in /docs (#998) Bumps [commonmarker](https://github.com/gjtorikian/commonmarker) from 0.23.6 to 0.23.9. - [Release notes](https://github.com/gjtorikian/commonmarker/releases) - [Changelog](https://github.com/gjtorikian/commonmarker/blob/main/CHANGELOG.md) - [Commits](https://github.com/gjtorikian/commonmarker/compare/v0.23.6...v0.23.9) --- updated-dependencies: - dependency-name: commonmarker dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index c4683913..a42df401 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -14,7 +14,7 @@ GEM execjs coffee-script-source (1.11.1) colorator (1.1.0) - commonmarker (0.23.6) + commonmarker (0.23.9) concurrent-ruby (1.1.10) dnsruby (1.61.9) simpleidn (~> 0.1) From 6db061846204b784d0db3cacab2711506d97ae79 Mon Sep 17 00:00:00 2001 From: Michael Date: Sun, 16 Apr 2023 21:55:20 +0400 Subject: [PATCH 30/35] - thirdparty: mkaverin/oauth2-donationalerts (#983) --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index b99a5095..b6d13894 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -46,6 +46,7 @@ Gateway | Composer Package | Maintainer [Discord](https://github.com/wohali/oauth2-discord-new) | wohali/oauth2-discord-new | [Joan Touzet](https://github.com/wohali) [Docusign](https://github.com/AlaaSarhan/oauth2-docusign) | sarhan/oauth2-docusign | [Alaa Sarhan](https://github.com/AlaaSarhan) [Dokeop](https://github.com/dokeop/oauth2-dokeop) | dokeop/oauth2-dokeop | [Dokeop](https://github.com/dokeop) +[DonationAlerts](https://github.com/mish-ka-mishka/oauth2-donationalerts) | mkaverin/oauth2-donationalerts | [Michael Kaverin](https://github.com/mish-ka-mishka) [Dribbble](https://github.com/crewlabs/oauth2-dribbble) | crewlabs/oauth2-dribbble | [Crew Labs](https://crew.co/labs) [Dropbox](https://github.com/stevenmaguire/oauth2-dropbox) | stevenmaguire/oauth2-dropbox | [Steven Maguire](https://github.com/stevenmaguire) [Drupal](https://github.com/chrishemmings/oauth2-drupal) | chrishemmings/oauth2-drupal | [Chris Hemmings](https://github.com/chrishemmings) From aa4501513197c71cfd9a075ef8883bd314e04e70 Mon Sep 17 00:00:00 2001 From: Jonathon Hill Date: Sun, 16 Apr 2023 13:56:57 -0400 Subject: [PATCH 31/35] thirdparty: compwright/oauth2-servicefusion, compwright/oauth2-fieldedge (#979) --- docs/providers/thirdparty.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index b6d13894..2bb2cfba 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -59,6 +59,7 @@ Gateway | Composer Package | Maintainer [Etsy](https://packagist.org/packages/startz/oauth2-etsy) | startz/oauth2-etsy | [Chuck Burgess](https://github.com/cdburgess) [EVE Online](https://github.com/killmails/oauth2-eve) | killmails/oauth2-eve | [Oizys](https://github.com/syzio) [Eventbrite](https://github.com/stevenmaguire/oauth2-eventbrite) | stevenmaguire/oauth2-eventbrite | [Steven Maguire](https://github.com/stevenmaguire) +[FieldEdge](https://github.com/compwright/oauth2-fieldedge) | compwright/oauth2-fieldedge | [Jonathon Hill](https://compwright.com) [Firefly III](https://github.com/StanSoftBG/oauth2-firefly-iii) | stansoft/oauth2-firefly-iii | [Stanimir Stoyanov](https://github.com/stratoss) [Fitbit](https://github.com/djchen/oauth2-fitbit) | djchen/oauth2-fitbit | [Dan Chen](https://github.com/djchen) [FormAssembly](https://github.com/FatherShawn/oauth2-formassembly) | fathershawn/oauth2-formassembly | [Shawn Duncan](https://github.com/FatherShawn) @@ -115,6 +116,7 @@ Gateway | Composer Package | Maintainer [Resource Guru](https://github.com/adam-paterson/oauth2-resource-guru) | adam-paterson/oauth2-resource-guru | [Adam Paterson](https://github.com/adam-paterson) [Riot (RSO)](https://github.com/kdefives/oauth2-riot) | kdefives/oauth2-riot | [Kevin Defives](https://github.com/kdefives) [Salesforce](https://github.com/stevenmaguire/oauth2-salesforce) | stevenmaguire/oauth2-salesforce | [Steven Maguire](https://github.com/stevenmaguire) +[Service Fusion](https://github.com/compwright/oauth2-servicefusion) | compwright/oauth2-servicefusion | [Jonathon Hill](https://compwright.com) [ServiceTitan](https://github.com/compwright/oauth2-servicetitan) | compwright/oauth2-servicetitan | [Jonathon Hill](https://compwright.com) [Shopify](https://github.com/multidimension-al/oauth2-shopify) | multidimensional/oauth2-shopify | [multidimension.al](https://multidimension.al/) [Slack](https://github.com/adam-paterson/oauth2-slack) | adam-paterson/oauth2-slack | [Adam Paterson](https://github.com/adam-paterson) From 1f983c4c246ae6bbeec7fcad09c7e6a01ab48057 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 16 Apr 2023 12:58:50 -0500 Subject: [PATCH 32/35] Bump activesupport from 6.0.6 to 6.0.6.1 in /docs (#987) Bumps [activesupport](https://github.com/rails/rails) from 6.0.6 to 6.0.6.1. - [Release notes](https://github.com/rails/rails/releases) - [Changelog](https://github.com/rails/rails/blob/v7.0.4.2/activesupport/CHANGELOG.md) - [Commits](https://github.com/rails/rails/compare/v6.0.6...v6.0.6.1) --- updated-dependencies: - dependency-name: activesupport dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- docs/Gemfile.lock | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock index a42df401..5cc1c3c5 100644 --- a/docs/Gemfile.lock +++ b/docs/Gemfile.lock @@ -1,7 +1,7 @@ GEM remote: https://rubygems.org/ specs: - activesupport (6.0.6) + activesupport (6.0.6.1) concurrent-ruby (~> 1.0, >= 1.0.2) i18n (>= 0.7, < 2) minitest (~> 5.1) @@ -15,7 +15,7 @@ GEM coffee-script-source (1.11.1) colorator (1.1.0) commonmarker (0.23.9) - concurrent-ruby (1.1.10) + concurrent-ruby (1.2.2) dnsruby (1.61.9) simpleidn (~> 0.1) em-websocket (0.5.3) @@ -212,7 +212,7 @@ GEM jekyll (>= 3.5, < 5.0) jekyll-feed (~> 0.9) jekyll-seo-tag (~> 2.1) - minitest (5.16.3) + minitest (5.18.0) nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) @@ -250,13 +250,13 @@ GEM thread_safe (0.3.6) typhoeus (1.4.0) ethon (>= 0.9.0) - tzinfo (1.2.10) + tzinfo (1.2.11) thread_safe (~> 0.1) unf (0.1.4) unf_ext unf_ext (0.0.8.2) unicode-display_width (1.8.0) - zeitwerk (2.6.1) + zeitwerk (2.6.7) PLATFORMS ruby From d4bcb329d2a142b9ab93ecb95217fa2495702183 Mon Sep 17 00:00:00 2001 From: potibm Date: Sun, 16 Apr 2023 19:59:34 +0200 Subject: [PATCH 33/35] Add sceneid-provider to list (#978) I have created a provider for SceneID https://packagist.org/packages/potibm/oauth2-sceneid https://github.com/potibm/oauth2-sceneid Co-authored-by: Ben Ramsey --- docs/providers/thirdparty.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/providers/thirdparty.md b/docs/providers/thirdparty.md index 2bb2cfba..fb0192e7 100755 --- a/docs/providers/thirdparty.md +++ b/docs/providers/thirdparty.md @@ -116,6 +116,7 @@ Gateway | Composer Package | Maintainer [Resource Guru](https://github.com/adam-paterson/oauth2-resource-guru) | adam-paterson/oauth2-resource-guru | [Adam Paterson](https://github.com/adam-paterson) [Riot (RSO)](https://github.com/kdefives/oauth2-riot) | kdefives/oauth2-riot | [Kevin Defives](https://github.com/kdefives) [Salesforce](https://github.com/stevenmaguire/oauth2-salesforce) | stevenmaguire/oauth2-salesforce | [Steven Maguire](https://github.com/stevenmaguire) +[SceneId](https://github.com/potibm/oauth2-sceneid) | potibm/oauth2-sceneid | [Stefan Keßeler](https://github.com/potibm) [Service Fusion](https://github.com/compwright/oauth2-servicefusion) | compwright/oauth2-servicefusion | [Jonathon Hill](https://compwright.com) [ServiceTitan](https://github.com/compwright/oauth2-servicetitan) | compwright/oauth2-servicetitan | [Jonathon Hill](https://compwright.com) [Shopify](https://github.com/multidimension-al/oauth2-shopify) | multidimensional/oauth2-shopify | [multidimension.al](https://multidimension.al/) From 04041d3530b2874f69ec0ea15f0300dcb52ffa26 Mon Sep 17 00:00:00 2001 From: Frank Stuckenberg Date: Sun, 16 Apr 2023 20:03:32 +0200 Subject: [PATCH 34/35] Docs: Fix state check example if session variable is not set (#946) Co-authored-by: Frank Stuckenberg --- docs/usage.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/usage.md b/docs/usage.md index 047b1bf7..88a8c21f 100755 --- a/docs/usage.md +++ b/docs/usage.md @@ -47,7 +47,7 @@ if (!isset($_GET['code'])) { exit; // Check given state against previously stored one to mitigate CSRF attack -} elseif (empty($_GET['state']) || (isset($_SESSION['oauth2state']) && $_GET['state'] !== $_SESSION['oauth2state'])) { +} elseif (empty($_GET['state']) || empty($_SESSION['oauth2state']) || $_GET['state'] !== $_SESSION['oauth2state']) { if (isset($_SESSION['oauth2state'])) { unset($_SESSION['oauth2state']); From a2ae5b0cdf715dfd0f87f1f17401af84c182d4c8 Mon Sep 17 00:00:00 2001 From: Jordy Kiesebrink Date: Sun, 16 Apr 2023 20:04:19 +0200 Subject: [PATCH 35/35] Update AbstractProvider.php (#959) `\League\OAuth2\Client\Provider\AbstractProvider::getAuthenticatedRequest` token is nullable --- src/Provider/AbstractProvider.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Provider/AbstractProvider.php b/src/Provider/AbstractProvider.php index 07f66b8c..293a54d6 100644 --- a/src/Provider/AbstractProvider.php +++ b/src/Provider/AbstractProvider.php @@ -662,7 +662,7 @@ public function getRequest($method, $url, array $options = []) * * @param string $method * @param string $url - * @param AccessTokenInterface|string $token + * @param AccessTokenInterface|string|null $token * @param array $options Any of "headers", "body", and "protocolVersion". * @return RequestInterface */