/**
  * Register the service provider.
  *
  * @return void
  */
 public function register()
 {
     $this->app->singleton('Atrauzzi\\Oauth2Server\\Config', function (Application $app) {
         $config = new Oauth2Config();
         $config->setTokenStrategy($this->makeServerObject('TokenStrategy', config('token_strategy', 'bearer')))->setAuthorizationCodeTtl(config('oauth2.authorization_code_ttl', '300'))->setAccessTokenTtl(config('oauth2.access_token_ttl', 3600))->setRefreshTokenTtl(config('oauth2.refresh_token_ttl', 604800))->requireScopeParam(config('oauth2.require_scopes', false))->requireStateParam(config('oauth2.require_state', false))->rotateRefreshTokens(config('oauth2.rotate_refresh_tokens', false))->setDefaultScopes(config('oauth2.default_scopes'));
         return $config;
     });
     //			$this->app->singleton('Atrauzzi\LaravelOauth2Server\Config', function (Application $app) {
     //
     //				$config = new LaravelOauth2Config();
     //
     //				return $config;
     //
     //			});
     $this->app->singleton('Atrauzzi\\Oauth2Server\\AuthorizationService', function (Application $app) {
         $grantTypes = [];
         foreach (config('oauth2.grant_types', ['authorization_code']) as $grantType) {
             $grantTypes[] = $this->makeServerObject('GrantType', $grantType);
         }
         return new AuthorizationService($app->make('Atrauzzi\\Oauth2Server\\Config'), $grantTypes);
     });
     $this->app->singleton('Atrauzzi\\Oauth2Server\\Domain\\Repository\\AuthorizationCode', 'Atrauzzi\\LaravelOauth2Server\\Domain\\Repository\\Cache\\AuthorizationCode');
     $this->app->singleton('Atrauzzi\\Oauth2Server\\Domain\\Repository\\AccessToken', 'Atrauzzi\\LaravelOauth2Server\\Domain\\Repository\\Cache\\AccessToken');
     $this->app->singleton('Atrauzzi\\Oauth2Server\\Domain\\Repository\\RefreshToken', 'Atrauzzi\\LaravelOauth2Server\\Domain\\Repository\\Cache\\RefreshToken');
     $this->app->singleton('Atrauzzi\\Oauth2Server\\Domain\\Repository\\Scope', 'Atrauzzi\\LaravelOauth2Server\\Domain\\Repository\\Eloquent\\Scope');
     $this->app->singleton('Atrauzzi\\Oauth2Server\\Domain\\Repository\\Client', 'Atrauzzi\\LaravelOauth2Server\\Domain\\Repository\\Eloquent\\Client');
 }