singleloginsystem/app/Providers/AppServiceProvider.php
= 02455fc71c Feat: Implement OpenID Connect nonce handling
- Added `CustomAuthCodeRepository` to cache and store nonces during authorization.
- Introduced `CustomTokenResponseType` to resolve cached nonces during token exchange.
- Created `oidc-server.php` configuration for OpenID Connect support, including scopes, claims, and token lifetimes.
- Registered custom implementations in `AppServiceProvider` with bindings for `AuthCodeRepository` and `TokenResponseType`.
- Added feature tests to validate nonce caching and resolution logic.
2026-06-17 07:22:26 +00:00

64 lines
1.5 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Providers;
use Admin9\OidcServer\Services\TokenResponseType;
use App\OAuth\{CustomAuthCodeRepository, CustomTokenResponseType};
use Carbon\CarbonImmutable;
use Illuminate\Support\Facades\{DB, Date};
use Illuminate\Support\ServiceProvider;
use Illuminate\Validation\Rules\Password;
use Laravel\Passport\Bridge\AuthCodeRepository;
final class AppServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*/
public function register(): void
{
$this->app->bind(
AuthCodeRepository::class,
CustomAuthCodeRepository::class
);
$this->app->singleton(
TokenResponseType::class,
CustomTokenResponseType::class
);
}
/**
* Bootstrap any application services.
*/
public function boot(): void
{
$this->configureDefaults();
}
/**
* Configure default behaviors for production-ready applications.
*/
protected function configureDefaults(): void
{
Date::use(CarbonImmutable::class);
DB::prohibitDestructiveCommands(
app()->isProduction(),
);
Password::defaults(
fn (): ?Password => app()->isProduction()
? Password::min(12)
->mixedCase()
->letters()
->numbers()
->symbols()
->uncompromised()
: null,
);
}
}