diff --git a/examples/src/Repositories/UserRepository.php b/examples/src/Repositories/UserRepository.php index 257fe754..5bf1c433 100644 --- a/examples/src/Repositories/UserRepository.php +++ b/examples/src/Repositories/UserRepository.php @@ -2,6 +2,7 @@ namespace OAuth2ServerExamples\Repositories; +use League\OAuth2\Server\Entities\Interfaces\ClientEntityInterface; use League\OAuth2\Server\Entities\Interfaces\ScopeEntityInterface; use League\OAuth2\Server\Repositories\UserRepositoryInterface; use OAuth2ServerExamples\Entities\ScopeEntity; @@ -13,15 +14,21 @@ class UserRepository implements UserRepositoryInterface /** * Get a user entity. * - * @param string $username - * @param string $password - * @param string $grantType The grant type used - * @param ScopeEntityInterface[] $scopes + * @param string $username + * @param string $password + * @param string $grantType The grant type used + * @param \League\OAuth2\Server\Entities\Interfaces\ClientEntityInterface $clientEntity + * @param ScopeEntityInterface[] $scopes * * @return \League\OAuth2\Server\Entities\Interfaces\UserEntityInterface */ - public function getUserEntityByUserCredentials($username, $password, $grantType, array &$scopes) - { + public function getUserEntityByUserCredentials( + $username, + $password, + $grantType, + ClientEntityInterface $clientEntity, + array &$scopes + ) { if ($username === 'alex' && $password === 'whisky') { $scope = new ScopeEntity(); $scope->setIdentifier('email'); diff --git a/src/Grant/AuthCodeGrant.php b/src/Grant/AuthCodeGrant.php index 5668f7be..b08bf965 100644 --- a/src/Grant/AuthCodeGrant.php +++ b/src/Grant/AuthCodeGrant.php @@ -125,6 +125,7 @@ class AuthCodeGrant extends AbstractAuthorizeGrant $usernameParameter, $passwordParameter, $this->getIdentifier(), + $client, $scopes ); diff --git a/src/Grant/ImplicitGrant.php b/src/Grant/ImplicitGrant.php index 3929560d..3f2f1cb5 100644 --- a/src/Grant/ImplicitGrant.php +++ b/src/Grant/ImplicitGrant.php @@ -123,6 +123,7 @@ class ImplicitGrant extends AbstractAuthorizeGrant $usernameParameter, $passwordParameter, $this->getIdentifier(), + $client, $scopes ); diff --git a/src/Grant/PasswordGrant.php b/src/Grant/PasswordGrant.php index c5e269f0..a399e5f7 100644 --- a/src/Grant/PasswordGrant.php +++ b/src/Grant/PasswordGrant.php @@ -11,6 +11,7 @@ namespace League\OAuth2\Server\Grant; use League\Event\Event; +use League\OAuth2\Server\Entities\Interfaces\ClientEntityInterface; use League\OAuth2\Server\Entities\Interfaces\ScopeEntityInterface; use League\OAuth2\Server\Entities\Interfaces\UserEntityInterface; use League\OAuth2\Server\Exception\OAuthServerException; @@ -49,7 +50,7 @@ class PasswordGrant extends AbstractGrant // Validate request $client = $this->validateClient($request); $scopes = $this->validateScopes($this->getRequestParameter('scope', $request), $client); - $user = $this->validateUser($request, $scopes); + $user = $this->validateUser($request, $client, $scopes); // Issue and persist new tokens $accessToken = $this->issueAccessToken($accessTokenTTL, $client, $user->getIdentifier(), $scopes); @@ -63,14 +64,14 @@ class PasswordGrant extends AbstractGrant } /** - * @param \Psr\Http\Message\ServerRequestInterface $request - * @param ScopeEntityInterface[] $scopes - * - * @throws \League\OAuth2\Server\Exception\OAuthServerException + * @param \Psr\Http\Message\ServerRequestInterface $request + * @param \League\OAuth2\Server\Entities\Interfaces\ClientEntityInterface $client + * @param ScopeEntityInterface[] $scopes * * @return \League\OAuth2\Server\Entities\Interfaces\UserEntityInterface + * @throws \League\OAuth2\Server\Exception\OAuthServerException */ - protected function validateUser(ServerRequestInterface $request, array &$scopes) + protected function validateUser(ServerRequestInterface $request, ClientEntityInterface $client, array &$scopes) { $username = $this->getRequestParameter('username', $request); if (is_null($username)) { @@ -86,6 +87,7 @@ class PasswordGrant extends AbstractGrant $username, $password, $this->getIdentifier(), + $client, $scopes ); if (!$user instanceof UserEntityInterface) { diff --git a/src/Repositories/UserRepositoryInterface.php b/src/Repositories/UserRepositoryInterface.php index a2ae0701..c0705649 100644 --- a/src/Repositories/UserRepositoryInterface.php +++ b/src/Repositories/UserRepositoryInterface.php @@ -2,6 +2,7 @@ namespace League\OAuth2\Server\Repositories; +use League\OAuth2\Server\Entities\Interfaces\ClientEntityInterface; use League\OAuth2\Server\Entities\Interfaces\ScopeEntityInterface; interface UserRepositoryInterface extends RepositoryInterface @@ -9,12 +10,19 @@ interface UserRepositoryInterface extends RepositoryInterface /** * Get a user entity. * - * @param string $username - * @param string $password - * @param string $grantType The grant type used - * @param ScopeEntityInterface[] $scopes + * @param string $username + * @param string $password + * @param string $grantType The grant type used + * @param \League\OAuth2\Server\Entities\Interfaces\ClientEntityInterface $clientEntity + * @param ScopeEntityInterface[] $scopes * * @return \League\OAuth2\Server\Entities\Interfaces\UserEntityInterface */ - public function getUserEntityByUserCredentials($username, $password, $grantType, array &$scopes); + public function getUserEntityByUserCredentials( + $username, + $password, + $grantType, + ClientEntityInterface $clientEntity, + array &$scopes + ); }