73 lines
1.7 KiB
PHP
73 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Modules\Google2FA\Providers;
|
|
|
|
use Illuminate\Foundation\Application;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class Google2FAServiceProvider extends ServiceProvider
|
|
{
|
|
/**
|
|
* @var string $moduleName
|
|
*/
|
|
protected string $moduleName = 'Google2FA';
|
|
|
|
/**
|
|
* @var string $moduleNameLower
|
|
*/
|
|
protected string $moduleNameLower = 'google2fa';
|
|
|
|
/**
|
|
* Boot the application events.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function boot(): void
|
|
{
|
|
$this->registerConfig();
|
|
$this->loadMigrationsFrom(module_path($this->moduleName, 'Database/Migrations'));
|
|
}
|
|
|
|
/**
|
|
* Register the service provider.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register(): void
|
|
{
|
|
$this->app->register(RouteServiceProvider::class);
|
|
|
|
$this->app->singleton('g2fa', function (Application $app) {
|
|
$google2fa = app('pragmarx.google2fa');
|
|
$google2fa->setAlgorithm($app->make('config')->get('google2fa.algorithm'));
|
|
$google2fa->setKeyRegeneration($app->make('config')->get('google2fa.key_interval'));
|
|
return $google2fa;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Register config.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function registerConfig(): void
|
|
{
|
|
$this->publishes([
|
|
module_path($this->moduleName, 'Config/config.php') => config_path($this->moduleNameLower.'.php'),
|
|
], 'config');
|
|
$this->mergeConfigFrom(
|
|
module_path($this->moduleName, 'Config/config.php'), $this->moduleNameLower
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Get the services provided by the provider.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function provides(): array
|
|
{
|
|
return ['g2fa'];
|
|
}
|
|
}
|