<?php

namespace Functional\Users\Exceptions;

use Exception;
use Illuminate\Http\Request;
use Illuminate\Http\Response;

/**
 * Levée quand le `state` renvoyé par pocket-id ne correspond pas à celui stocké en session lors
 * de la redirection : session expirée ou tentative de CSRF sur le callback OIDC.
 */
class OidcStateMismatchException extends Exception
{
    /**
     * Render the exception as an HTTP response.
     */
    public function render(Request $request): Response
    {
        return response([
            'message' => 'Authentification OIDC invalide : état de session non reconnu.',
        ], Response::HTTP_BAD_REQUEST);
    }
}
