Source of file IOAuthConfiguration.php

Size: 1,784 Bytes - Last Modified: 2019-08-09T18:27:54+00:00

/home/travis/build/zerospam/sdk-framework/src/Config/IOAuthConfiguration.php

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
<?php
/**
 * Created by PhpStorm.
 * User: aaflalo
 * Date: 18-06-01
 * Time: 09:50.
 */

namespace ZEROSPAM\Framework\SDK\Config;

use League\OAuth2\Client\Provider\AbstractProvider;
use League\OAuth2\Client\Token\AccessToken;
use ZEROSPAM\Framework\SDK\Client\Middleware\IMiddleware;
use ZEROSPAM\Framework\SDK\Client\Middleware\IPreRequestMiddleware;
use ZEROSPAM\Framework\SDK\Client\OAuthClient;

/**
 * Interface IOAuthConfiguration
 *
 * Configuration for an OAuthClient
 *
 * @see     OAuthClient
 * @package ZEROSPAM\Framework\SDK\Config
 */
interface IOAuthConfiguration
{
    /**
     * Get the redirect URL.
     *
     * @return string
     */
    public function getRedirectUrl(): string;

    /**
     * Get access token for given code.
     *
     * @param string $code
     *
     * @return AccessToken
     */
    public function getAccessToken(string $code): AccessToken;

    /**
     * Give a new access token refreshed.
     *
     * @param AccessToken $token
     *
     * @return AccessToken
     */
    public function refreshAccessToken(AccessToken $token): AccessToken;

    /**
     * Use the refresh token to get a new access token.
     *
     * @param string $refreshToken
     *
     * @return AccessToken
     */
    public function refreshToken(string $refreshToken): AccessToken;

    /**
     * Get a OAuthProvider.
     *
     * @return AbstractProvider
     */
    public function getProvider(): AbstractProvider;

    /**
     * End point for Requests.
     *
     * @return string
     */
    public function getEndPoint(): string;

    /**
     * @return IMiddleware[]
     */
    public function defaultMiddlewares(): array;

    /**
     * @return IPreRequestMiddleware[]
     */
    public function defaultPreRequestMiddlewares(): array;
}