mirror of
				https://github.com/elyby/oauth2-server.git
				synced 2025-05-31 14:12:07 +05:30 
			
		
		
		
	
		
			
				
	
	
		
			94 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
<?php
 | 
						|
/**
 | 
						|
 * OAuth 2.0 Access token entity
 | 
						|
 *
 | 
						|
 * @package     league/oauth2-server
 | 
						|
 * @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\Entity;
 | 
						|
 | 
						|
/**
 | 
						|
 * Access token entity class
 | 
						|
 */
 | 
						|
class AccessTokenEntity extends AbstractTokenEntity
 | 
						|
{
 | 
						|
    /**
 | 
						|
     * Get session
 | 
						|
     *
 | 
						|
     * @return \League\OAuth2\Server\Entity\SessionEntity
 | 
						|
     */
 | 
						|
    public function getSession()
 | 
						|
    {
 | 
						|
        if ($this->session instanceof SessionEntity) {
 | 
						|
            return $this->session;
 | 
						|
        }
 | 
						|
 | 
						|
        $this->session = $this->server->getSessionStorage()->getByAccessToken($this);
 | 
						|
 | 
						|
        return $this->session;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Check if access token has an associated scope
 | 
						|
     *
 | 
						|
     * @param string $scope Scope to check
 | 
						|
     *
 | 
						|
     * @return bool
 | 
						|
     */
 | 
						|
    public function hasScope($scope)
 | 
						|
    {
 | 
						|
        if ($this->scopes === null) {
 | 
						|
            $this->getScopes();
 | 
						|
        }
 | 
						|
 | 
						|
        return isset($this->scopes[$scope]);
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * Return all scopes associated with the access token
 | 
						|
     *
 | 
						|
     * @return \League\OAuth2\Server\Entity\ScopeEntity[]
 | 
						|
     */
 | 
						|
    public function getScopes()
 | 
						|
    {
 | 
						|
        if ($this->scopes === null) {
 | 
						|
            $this->scopes = $this->formatScopes(
 | 
						|
                $this->server->getAccessTokenStorage()->getScopes($this)
 | 
						|
            );
 | 
						|
        }
 | 
						|
 | 
						|
        return $this->scopes;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * {@inheritdoc}
 | 
						|
     */
 | 
						|
    public function save()
 | 
						|
    {
 | 
						|
        $this->server->getAccessTokenStorage()->create(
 | 
						|
            $this->getId(),
 | 
						|
            $this->getExpireTime(),
 | 
						|
            $this->getSession()->getId()
 | 
						|
        );
 | 
						|
 | 
						|
        // Associate the scope with the token
 | 
						|
        foreach ($this->getScopes() as $scope) {
 | 
						|
            $this->server->getAccessTokenStorage()->associateScope($this, $scope);
 | 
						|
        }
 | 
						|
 | 
						|
        return $this;
 | 
						|
    }
 | 
						|
 | 
						|
    /**
 | 
						|
     * {@inheritdoc}
 | 
						|
     */
 | 
						|
    public function expire()
 | 
						|
    {
 | 
						|
        $this->server->getAccessTokenStorage()->delete($this);
 | 
						|
    }
 | 
						|
}
 |