Add Symfony Deprecation Contracts package

- Created CHANGELOG.md to maintain version history.
- Added README.md with usage instructions for the trigger_deprecation() function.
- Initialized composer.json for the Symfony Deprecation Contracts library, specifying dependencies and autoloading.
This commit is contained in:
2025-12-15 08:43:18 +01:00
parent 0eedc919db
commit 778ee26fe4
643 changed files with 113899 additions and 109267 deletions

View File

@@ -0,0 +1,85 @@
OAuth 2.0 Google Provider Changelog
## 4.0.1 - 2022-03-17
### Changed
- Corrected file excludes for dist archive, #120 by @cedric-anne
## 4.0.0 - 2022-03-04
### Changed
- Adding return type, #98 by @yozhef
- Add PHP 8.0 support, require PHP 7.3 or newer, #102 by @yozhef
## 3.0.4 - 2021-01-27
### Fixed
- Correct OAuth endpoint, #94 by @Slamdunk
## 3.0.3 - 2020-07-24
### Fixed
- Remove the `approval_prompt` from default parameters, #90
## 3.0.2 - 2019-11-16
### Fixed
- Allow for `family_name` to be undefined in user information, #79 by @majkel89
## 3.0.1 - 2018-12-28
### Fixed
- Correct conflict handling for prompt option, #69 by @mxdpeep
## 3.0.0 - 2018-12-23
### Changed
- Update to latest version of Google OAuth
- Use only OpenID Connect for user details
### Fixed
- Correct handling of selecting from multiple user accounts, #45
- Prevent conflict when using prompt option, #42
### Added
- Add "locale" to user details, #60
- Support additional scopes at construction
### Removed
- Dropped support for Google+ user details, #34 and #63
## 2.2.0 - 2018-03-19
### Added
- Hosted domain validation, #54 by @pradtke
## 2.1.0 - 2018-03-09
### Added
- OpenID Connect support, #48 by @pradtke
## 2.0.0 - 2017-01-24
### Added
- PHP 7.1 support
### Removed
- Dropped PHP 5.5 support
## 1.0.0 - 2015-08-12
- Initial release

View File

@@ -0,0 +1,42 @@
# Contributing
Contributions are **welcome** and will be fully **credited**.
We accept contributions via Pull Requests on [Github](https://github.com/thephpleague/oauth2-google).
## Pull Requests
- **[PSR-2 Coding Standard](https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md)** - The easiest way to apply the conventions is to install [PHP Code Sniffer](http://pear.php.net/package/PHP_CodeSniffer).
- **Add tests!** - Your patch won't be accepted if it doesn't have tests.
- **Document any change in behaviour** - Make sure the README and any other relevant documentation are kept up-to-date.
- **Consider our release cycle** - We try to follow SemVer. Randomly breaking public APIs is not an option.
- **Create topic branches** - Don't ask us to pull from your master branch.
- **One pull request per feature** - If you want to do more than one thing, send multiple pull requests.
- **Send coherent history** - Make sure each individual commit in your pull request is meaningful. If you had to make multiple intermediate commits while developing, please squash them before submitting.
- **Ensure tests pass!** - Please run the tests (see below) before submitting your pull request, and make sure they pass. We won't accept a patch until all tests pass.
- **Ensure no coding standards violations** - Please run PHP Code Sniffer using the PSR-2 standard (see below) before submitting your pull request. A violation will cause the build to fail, so please make sure there are no violations. We can't accept a patch if the build fails.
## Running Tests
```sh
composer test
```
## Running PHP Code Sniffer
```sh
composer check
```
**Happy coding**!

View File

@@ -0,0 +1,239 @@
# Google Provider for OAuth 2.0 Client
[![Build Status](https://img.shields.io/github/workflow/status/thephpleague/oauth2-google/test/main)](https://github.com/thephpleague/oauth2-google/actions/workflows/test.yaml)
[![Code Coverage](https://img.shields.io/codecov/c/gh/thephpleague/oauth2-google)](https://app.codecov.io/gh/thephpleague/oauth2-google)
[![License](https://img.shields.io/packagist/l/league/oauth2-google)](https://github.com/thephpleague/oauth2-google/blob/main/LICENSE)
[![Latest Stable Version](https://img.shields.io/packagist/v/league/oauth2-google)](https://packagist.org/packages/league/oauth2-google)
This package provides Google OAuth 2.0 support for the PHP League's [OAuth 2.0 Client](https://github.com/thephpleague/oauth2-client).
This package is compliant with [PSR-1][], [PSR-2][] and [PSR-4][]. If you notice compliance oversights, please send
a patch via pull request.
[PSR-1]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-1-basic-coding-standard.md
[PSR-2]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-2-coding-style-guide.md
[PSR-4]: https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md
## Requirements
The following versions of PHP are supported.
* PHP 7.3
* PHP 7.4
* PHP 8.0
* PHP 8.1
This package uses [OpenID Connect][openid-connect] to authenticate users with
Google accounts.
To use this package, it will be necessary to have a Google client ID and client
secret. These are referred to as `{google-client-id}` and `{google-client-secret}`
in the documentation.
Please follow the [Google instructions][oauth-setup] to create the required credentials.
[openid-connect]: https://developers.google.com/identity/protocols/OpenIDConnect
[oauth-setup]: https://developers.google.com/identity/protocols/OpenIDConnect#registeringyourapp
## Installation
To install, use composer:
```sh
composer require league/oauth2-google
```
## Usage
### Authorization Code Flow
```php
require __DIR__ . '/vendor/autoload.php';
use League\OAuth2\Client\Provider\Google;
session_start(); // Remove if session.auto_start=1 in php.ini
$provider = new Google([
'clientId' => '{google-client-id}',
'clientSecret' => '{google-client-secret}',
'redirectUri' => 'https://example.com/callback-url',
'hostedDomain' => 'example.com', // optional; used to restrict access to users on your G Suite/Google Apps for Business accounts
]);
if (!empty($_GET['error'])) {
// Got an error, probably user denied access
exit('Got error: ' . htmlspecialchars($_GET['error'], ENT_QUOTES, 'UTF-8'));
} elseif (empty($_GET['code'])) {
// If we don't have an authorization code then get one
$authUrl = $provider->getAuthorizationUrl();
$_SESSION['oauth2state'] = $provider->getState();
header('Location: ' . $authUrl);
exit;
} elseif (empty($_GET['state']) || ($_GET['state'] !== $_SESSION['oauth2state'])) {
// State is invalid, possible CSRF attack in progress
unset($_SESSION['oauth2state']);
exit('Invalid state');
} else {
// Try to get an access token (using the authorization code grant)
$token = $provider->getAccessToken('authorization_code', [
'code' => $_GET['code']
]);
// Optional: Now you have a token you can look up a users profile data
try {
// We got an access token, let's now get the owner details
$ownerDetails = $provider->getResourceOwner($token);
// Use these details to create a new profile
printf('Hello %s!', $ownerDetails->getFirstName());
} catch (Exception $e) {
// Failed to get user details
exit('Something went wrong: ' . $e->getMessage());
}
// Use this to interact with an API on the users behalf
echo $token->getToken();
// Use this to get a new access token if the old one expires
echo $token->getRefreshToken();
// Unix timestamp at which the access token expires
echo $token->getExpires();
}
```
#### Available Options
The `Google` provider has the following [options][auth-params]:
- `accessType` to use online or offline access
- `hostedDomain` to authenticate G Suite users
- `prompt` to modify the prompt that the user will see
- `scopes` to request access to additional user information
[auth-params]: https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters
#### Accessing Token JWT
Google provides a [JSON Web Token][jwt] (JWT) with all access tokens. This token
[contains basic information][openid-jwt] about the authenticated user. The JWT
can be accessed from the `id_token` value of the access token:
```php
/** @var League\OAuth2\Client\Token\AccessToken $token */
$values = $token->getValues();
/** @var string */
$jwt = $values['id_token'];
```
Parsing the JWT will require a [JWT parser][jwt-parsers]. Refer to parser
documentation for instructions.
[jwt]: https://jwt.io/
[openid-jwt]: https://developers.google.com/identity/protocols/OpenIDConnect#obtainuserinfo
[jwt-parsers]: https://packagist.org/search/?q=jwt
### Refreshing a Token
Refresh tokens are only provided to applications which request offline access. You can specify offline access by setting the `accessType` option in your provider:
```php
use League\OAuth2\Client\Provider\Google;
$provider = new Google([
'clientId' => '{google-client-id}',
'clientSecret' => '{google-client-secret}',
'redirectUri' => 'https://example.com/callback-url',
'accessType' => 'offline',
]);
```
It is important to note that the refresh token is only returned on the first request after this it will be `null`. You should securely store the refresh token when it is returned:
```php
$token = $provider->getAccessToken('authorization_code', [
'code' => $code
]);
// persist the token in a database
$refreshToken = $token->getRefreshToken();
```
If you ever need to get a new refresh token you can request one by forcing the consent prompt:
```php
$authUrl = $provider->getAuthorizationUrl(['prompt' => 'consent', 'access_type' => 'offline']);
```
Now you have everything you need to refresh an access token using a refresh token:
```php
use League\OAuth2\Client\Provider\Google;
use League\OAuth2\Client\Grant\RefreshToken;
$provider = new Google([
'clientId' => '{google-client-id}',
'clientSecret' => '{google-client-secret}',
'redirectUri' => 'https://example.com/callback-url',
]);
$grant = new RefreshToken();
$token = $provider->getAccessToken($grant, ['refresh_token' => $refreshToken]);
```
## Scopes
Additional [scopes][scopes] can be set by using the `scope` parameter when
generating the authorization URL:
```php
$authorizationUrl = $provider->getAuthorizationUrl([
'scope' => [
'scope-url-here'
],
]);
```
[scopes]: https://developers.google.com/identity/protocols/googlescopes
## Testing
Tests can be run with:
```sh
composer test
```
Style checks can be run with:
```sh
composer check
```
## Contributing
Please see [CONTRIBUTING](https://github.com/thephpleague/oauth2-google/blob/main/CONTRIBUTING.md) for details.
## Credits
- [Woody Gilk](https://github.com/shadowhand)
- [All Contributors](https://github.com/thephpleague/oauth2-google/contributors)
## License
The MIT License (MIT). Please see [License File](https://github.com/thephpleague/oauth2-google/blob/main/LICENSE) for more information.

View File

@@ -0,0 +1,43 @@
{
"name": "league/oauth2-google",
"description": "Google OAuth 2.0 Client Provider for The PHP League OAuth2-Client",
"license": "MIT",
"authors": [
{
"name": "Woody Gilk",
"email": "hello@shadowhand.com",
"homepage": "https://shadowhand.com"
}
],
"keywords": [
"oauth",
"oauth2",
"client",
"authorization",
"authentication",
"google"
],
"minimum-stability": "stable",
"require": {
"php": "^7.3 || ^8.0",
"league/oauth2-client": "^2.0"
},
"require-dev": {
"eloquent/phony-phpunit": "^6.0 || ^7.1",
"phpunit/phpunit": "^8.0 || ^9.0",
"squizlabs/php_codesniffer": "^3.0"
},
"autoload": {
"psr-4": {
"League\\OAuth2\\Client\\": "src/"
}
},
"autoload-dev": {
"psr-4": {
"League\\OAuth2\\Client\\Test\\": "test/src/"
}
},
"scripts": {
"check": "phpcs src test --standard=PSR12 -sp"
}
}

View File

@@ -1,93 +1,19 @@
<?php //ICB0 74:0 81:925 82:11c3 ?><?php //000ab
// Copyright prestashow.com 2025. All Rights Reserved.
// @authors prestashow.com <contact@prestashow.com>
// @license https://prestashow.com/license
return;
?>
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
UNjxem===
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
<?php
namespace PShowSsoScoped\League\OAuth2\Client\Exception;
/**
* Exception thrown if the Google Provider is configured with a hosted domain that the user doesn't belong to
*/
class HostedDomainException extends \Exception
{
/**
* @param $configuredDomain
*
* @return static
*/
public static function notMatchingDomain($configuredDomain): self
{
return new static("User is not part of domain '$configuredDomain'");
}
}

View File

@@ -1,255 +1,154 @@
<?php //ICB0 74:0 81:19bc 82:324b ?><?php //000ab
// Copyright prestashow.com 2025. All Rights Reserved.
// @authors prestashow.com <contact@prestashow.com>
// @license https://prestashow.com/license
return;
?>
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
Ay01PjoVbAf2DhLRiMkq=
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
VmDdhNIy66mWdW==
<?php
namespace PShowSsoScoped\League\OAuth2\Client\Provider;
use PShowSsoScoped\League\OAuth2\Client\Exception\HostedDomainException;
use PShowSsoScoped\League\OAuth2\Client\Provider\Exception\IdentityProviderException;
use PShowSsoScoped\League\OAuth2\Client\Token\AccessToken;
use PShowSsoScoped\League\OAuth2\Client\Tool\BearerAuthorizationTrait;
use PShowSsoScoped\Psr\Http\Message\ResponseInterface;
class Google extends AbstractProvider
{
use BearerAuthorizationTrait;
/**
* @var string If set, this will be sent to google as the "access_type" parameter.
* @link https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters
*/
protected $accessType;
/**
* @var string If set, this will be sent to google as the "hd" parameter.
* @link https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters
*/
protected $hostedDomain;
/**
* @var string If set, this will be sent to google as the "prompt" parameter.
* @link https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters
*/
protected $prompt;
/**
* @var array List of scopes that will be used for authentication.
* @link https://developers.google.com/identity/protocols/googlescopes
*/
protected $scopes = [];
public function getBaseAuthorizationUrl(): string
{
return 'https://accounts.google.com/o/oauth2/v2/auth';
}
public function getBaseAccessTokenUrl(array $params): string
{
return 'https://oauth2.googleapis.com/token';
}
public function getResourceOwnerDetailsUrl(AccessToken $token): string
{
return 'https://openidconnect.googleapis.com/v1/userinfo';
}
protected function getAuthorizationParameters(array $options): array
{
if (empty($options['hd']) && $this->hostedDomain) {
$options['hd'] = $this->hostedDomain;
}
if (empty($options['access_type']) && $this->accessType) {
$options['access_type'] = $this->accessType;
}
if (empty($options['prompt']) && $this->prompt) {
$options['prompt'] = $this->prompt;
}
// Default scopes MUST be included for OpenID Connect.
// Additional scopes MAY be added by constructor or option.
$scopes = array_merge($this->getDefaultScopes(), $this->scopes);
if (!empty($options['scope'])) {
$scopes = array_merge($scopes, $options['scope']);
}
$options['scope'] = array_unique($scopes);
$options = parent::getAuthorizationParameters($options);
// The "approval_prompt" MUST be removed as it is not supported by Google, use "prompt" instead:
// https://developers.google.com/identity/protocols/oauth2/openid-connect#prompt
unset($options['approval_prompt']);
return $options;
}
protected function getDefaultScopes(): array
{
// "openid" MUST be the first scope in the list.
return [
'openid',
'email',
'profile',
];
}
protected function getScopeSeparator(): string
{
return ' ';
}
protected function checkResponse(ResponseInterface $response, $data): void
{
// @codeCoverageIgnoreStart
if (empty($data['error'])) {
return;
}
// @codeCoverageIgnoreEnd
$code = 0;
$error = $data['error'];
if (is_array($error)) {
$code = $error['code'];
$error = $error['message'];
}
throw new IdentityProviderException($error, $code, $data);
}
protected function createResourceOwner(array $response, AccessToken $token): GoogleUser
{
$user = new GoogleUser($response);
$this->assertMatchingDomain($user->getHostedDomain());
return $user;
}
/**
* @param string|null $hostedDomain
*
* @throws HostedDomainException If the domain does not match the configured domain.
*/
protected function assertMatchingDomain(?string $hostedDomain): void
{
if ($this->hostedDomain === null) {
// No hosted domain configured.
return;
}
if ($this->hostedDomain === '*' && $hostedDomain) {
// Any hosted domain is allowed.
return;
}
if ($this->hostedDomain === $hostedDomain) {
// Hosted domain is correct.
return;
}
throw HostedDomainException::notMatchingDomain($this->hostedDomain);
}
}

View File

@@ -1,169 +1,109 @@
<?php //ICB0 74:0 81:10aa 82:20d5 ?><?php //000ab
// Copyright prestashow.com 2025. All Rights Reserved.
// @authors prestashow.com <contact@prestashow.com>
// @license https://prestashow.com/license
return;
?>
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
2QInJ509=
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=
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
FpjfDkQUVO4fChLVtLgK/v9baPX/hy5IqKO=
<?php
namespace PShowSsoScoped\League\OAuth2\Client\Provider;
class GoogleUser implements ResourceOwnerInterface
{
/**
* @var array
*/
protected $response;
/**
* @param array $response
*/
public function __construct(array $response)
{
$this->response = $response;
}
public function getId()
{
return $this->response['sub'];
}
/**
* Get preferred display name.
*
* @return string
*/
public function getName(): string
{
return $this->response['name'];
}
/**
* Get preferred first name.
*
* @return string|null
*/
public function getFirstName(): ?string
{
return $this->getResponseValue('given_name');
}
/**
* Get preferred last name.
*
* @return string|null
*/
public function getLastName(): ?string
{
return $this->getResponseValue('family_name');
}
/**
* Get locale.
*
* @return string|null
*/
public function getLocale(): ?string
{
return $this->getResponseValue('locale');
}
/**
* Get email address.
*
* @return string|null
*/
public function getEmail(): ?string
{
return $this->getResponseValue('email');
}
/**
* Get hosted domain.
*
* @return string|null
*/
public function getHostedDomain(): ?string
{
return $this->getResponseValue('hd');
}
/**
* Get avatar image URL.
*
* @return string|null
*/
public function getAvatar(): ?string
{
return $this->getResponseValue('picture');
}
/**
* Get user data as an array.
*
* @return array
*/
public function toArray(): array
{
return $this->response;
}
private function getResponseValue($key)
{
return $this->response[$key] ?? null;
}
}