Plugins > Outils externes > Gérer les outils). * Jamais les identifiants d'un élève ou d'un prof ; toujours ceux * qu'Adam lit lui-même dans l'administration Moodle. */ class EnregistrerPlateformeLti extends Command { protected $signature = 'lti:enregistrer-plateforme {emetteur : « Platform ID » affiché par Moodle} {client_id : « Client ID » affiché par Moodle} {url_jeu_cles : « Public keyset URL » affichée par Moodle} {url_jeton_auth : « Access token URL » affichée par Moodle} {url_connexion_auth : « Authentication request URL » affichée par Moodle} {serveur_auth? : « Authentication server » — facultatif, souvent identique à l’émetteur}'; protected $description = 'Enregistre un établissement Moodle (plateforme LTI 1.3)'; public function handle(): void { $clePrivee = RSA::createKey(2048)->toString('PKCS8'); $kid = Str::random(16); $plateforme = LtiPlateforme::create([ 'emetteur' => $this->argument('emetteur'), 'client_id' => $this->argument('client_id'), 'url_jeu_cles' => $this->argument('url_jeu_cles'), 'url_jeton_auth' => $this->argument('url_jeton_auth'), 'url_connexion_auth' => $this->argument('url_connexion_auth'), 'serveur_auth' => $this->argument('serveur_auth'), 'cle_privee_outil' => $clePrivee, 'identifiant_cle' => $kid, ]); $this->info("Plateforme #{$plateforme->id} enregistrée."); $this->newLine(); $this->line('À saisir côté Moodle, dans la configuration de l’outil externe :'); $this->line(' Initiate login URL : '.route('lti.connexion')); $this->line(' Public keyset URL (JWKS) : '.route('lti.cles')); $this->newLine(); $this->line('Ensuite, pour chaque cours où l’outil est ajouté, Moodle affiche un'); $this->line('« Deployment ID » à enregistrer avec :'); $this->line(" php artisan lti:enregistrer-deploiement {$plateforme->id} "); } }