Formation PUB030 : Laravel, 2019 L'authentification

37.10 Authentification automatique lorsqu'une configuration indique le mode débogage


Facultatif

Votre site permet l'authentification des usagers avec certaines routes réservées pour les usagers authentifiés, bravo ! Mais maintenant, vous aurez à vous authentifier à chaque vous que vous testez votre site pendant le développement d'autres fonctionnalités.

Il est possible, bien sûr, d'utiliser la fonctionnalité « Rester connecté ». Si vous avez choisi de ne pas implanter cette fonctionnalité, vous pouvez toujours vous tourner vers la technique expliquée ici. Il s'agit d'une approche plus invasive, à mettre en place seulement lorsque le système d'authentification est fonctionnel et complètement testé.

Une action à effectuer seulement lorsqu'on est en mode débogage

L'astuce consiste à tirer avantage de la configuration indiquant si l'application est en développement.

Fichier .env (PHP)

APP_ENV=local

APP_KEY=...

APP_DEBUG=true

APP_URL=http://localhost

Lorsque le programme détectera qu'il est en mode développement, il authentifiera automatiquement un usager.

Indication visuelle du mode débogage

Un des dangers d'une telle approche est d'oublier de changer la configuration lors de la mise en ligne. Aussi, sur le gabarit de base de notre site, on affichera la valeur de cette configuration, pour s'assurer d'être averti lorsqu'on est en mode développement.

Ex :

Vue Laravel (Blade)

@if (Config::get('app.debug'))

    <div class="modedebug">*** Mode débogage actif ***</div>

@endif

Authentification automatique en mode débogage

Et dans le code PHP, on se chargera d'authentifier un usager si on est en mode développement et qu'aucun usager n'est authentifié.

Pour assurer que le code soit exécuté avant toutes choses, on l'écrira dans la méthode boot() du fichier appProvidersAppServiceProvider.php.

Attention : ceci fera en sorte qu'il sera impossible de se déconnecter lorsqu'on est en mode débogage.

Ex :

Fichier app\Providers\AppServiceProvider.php

class AppServiceProvider extends ServiceProvider

{

    /**

     * Bootstrap any application services.

     *

     * @return void

     */

    public function boot()

    {

        if (\Config::get('app.debug')) {

            $usager = \App\Usager::find(1);

            \Auth::login($usager);

        }

    }

 

    /**

     * Register any application services.

     *

     * @return void

     */

    public function register()

    {

        //

    }

}

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre