Pour imposer la saisie d'un couple identifiant / mot de passe afin de rentrer dans un répertoire de votre site Internet, une des solutions est d'utiliser le fichier .htpasswd.

Pour cela il convient d'ajouter 2 fichiers au répertoire dont vous souhaitez limiter l'accès : .htaccess et .htpasswd.

Dans l'exemple suivant, nous supposeront que nous voulons restreindre par mot de passe, l'acc« es au répertoire admin de notre site Internet.

Fichier .htaccess apellant un fichier .htpasswd

AuthUserFile /home/monsite/admin/.htpasswd 
AuthName "Accès réservé" 
AuthType Basic 
<Limit GET POST> 
require valid-user 
</Limit>

AuthUserFile  doit comprendre le chemin absolu vers votre fichier .htpasswd.
Pour connaitre ce chemin, créez un fichier temporaire, que vous nommerez path.php, insérez le code ci après :

<?php echo realpath('path.php'); ?>

et placez le fichier path.php dans votre répertoire /admin et enfin appelez le depuis votre navigateur pour récupére la valeur du chemin absolut; 

Fichier .htpasswd

Créez le fichier .htpasswd et placez le dans le répertoire /admin. Ce fichier contiendra une liste de couple identifiant/mot de passe qui permettront aux utilisateurs de visiter le dossier admin.

Apparence de votre fichier .htpasswd :

identifiant1:mot-de-passe-crypte1
identifiant2:mot-de-passe-crypte2

Il existe pléthore de services en ligne pour crypter vos mot de passe, en voici un exemple.

Se déconnecter d'une connexion par .htpasswd

J'ai mis un moment avant de trouver la technique, cela dit, on se déconnecte automatiquement dès que le navigateur est fermé (Attention pas seulement la fenêtre du navigateur)

L'astuce consiste à créer un fichier deconnexion.php que l'on peut appeler via un lien depuis l'un des fichiers du répertoire admin.
Le fichier deconnexion.php redemande en fait les identifiants de connexion à l'utilisateur, puis le redirige vers la page de votre choix.

<?php
    header('WWW-Authenticate: Basic realm="Accès réservé"');
    header('HTTP/1.0 401 Unauthorized');
    echo '<script type="text/javascript">
             window.location.href = "http://monsite.php";
          </script>';
    exit();
?>
Attention realm doit avoir la même valeur que AuthName dans le .htaccess
0 réponses

Laisser un commentaire

Participez-vous à la discussion?
N'hésitez pas à contribuer!

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.