mirror of
				https://github.com/elyby/oauth2-server.git
				synced 2025-05-31 14:12:07 +05:30 
			
		
		
		
	
		
			
				
	
	
		
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| /**
 | |
|  * OAuth 2.0 Client credentials grant.
 | |
|  *
 | |
|  * @author      Alex Bilbie <hello@alexbilbie.com>
 | |
|  * @copyright   Copyright (c) Alex Bilbie
 | |
|  * @license     http://mit-license.org/
 | |
|  *
 | |
|  * @link        https://github.com/thephpleague/oauth2-server
 | |
|  */
 | |
| 
 | |
| namespace League\OAuth2\Server\Grant;
 | |
| 
 | |
| use League\OAuth2\Server\ResponseTypes\ResponseTypeInterface;
 | |
| use Psr\Http\Message\ServerRequestInterface;
 | |
| 
 | |
| /**
 | |
|  * Client credentials grant class.
 | |
|  */
 | |
| class ClientCredentialsGrant extends AbstractGrant
 | |
| {
 | |
|     /**
 | |
|      * {@inheritdoc}
 | |
|      */
 | |
|     public function respondToAccessTokenRequest(
 | |
|         ServerRequestInterface $request,
 | |
|         ResponseTypeInterface $responseType,
 | |
|         \DateInterval $accessTokenTTL
 | |
|     ) {
 | |
|         // Validate request
 | |
|         $client = $this->validateClient($request);
 | |
|         $scopes = $this->validateScopes($this->getRequestParameter('scope', $request));
 | |
| 
 | |
|         // Finalize the requested scopes
 | |
|         $scopes = $this->scopeRepository->finalizeScopes($scopes, $this->getIdentifier(), $client);
 | |
| 
 | |
|         // Issue and persist access token
 | |
|         $accessToken = $this->issueAccessToken($accessTokenTTL, $client, null, $scopes);
 | |
| 
 | |
|         // Inject access token into response type
 | |
|         $responseType->setAccessToken($accessToken);
 | |
| 
 | |
|         return $responseType;
 | |
|     }
 | |
| 
 | |
|     /**
 | |
|      * {@inheritdoc}
 | |
|      */
 | |
|     public function getIdentifier()
 | |
|     {
 | |
|         return 'client_credentials';
 | |
|     }
 | |
| }
 |