Die Methode mit .htaccess/.htpasswd ist vielen bekannt um ein Verzeichnis per passwort zu schützen – Und dies geht mit dem apache-modul: mod_auth_mysql auch über eine mysql Datenbank!
Die Möglichkeiten dieser Methode sind fast unerschröpflich, so kann z.B. ein Forum einen Verzeichnisschutz implementiert haben, bei dem man sich automatisch mit seinem normalen Foren-Login anmelden kann, usw.
Und so gehts:
Erst mal muss das mod_auth_mysql installiert werden, z.B. bei CentOS mittels:
yum install mod_auth_mysql |
Dann legt man im zu schützenden Verzeichnis einfach ein normales .htaccess file an mit folgendem Inhalt:
AuthName "SeitenName" AuthType Basic AuthMySQLHost <DB_HOST> AuthMySQLUser <DB_USER> AuthMySQLPassword <DB_PASSWORT> AuthMySQLDB <DB> AuthMySQLUserTable <USER_TABELLE> AuthMySQLNameField <FELD_NAME> AuthMySQLPasswordField <FELD_PASSWORT> AuthMySQLPwEncryption <passwort Verschlüsselung, z.B. md5> AuthMySQLEnable On AuthMySQLUserCondition "<ggf. weitere Kontitionen>" require valid-user |
Hier ist noch ein Beispiel, wie man das ganze auch auf Gruppenberechtigungen ausdehnen kann:
AuthName "YourSite" AuthType Basic # Database settings: AuthMySQLHost localhost AuthMySQLUser dbuser AuthMySQLPassword dbpass AuthMySQLDB dbname # User table AuthMySQLUserTable users AuthMySQLNameField users.name AuthMySQLPasswordField users.pass # User Roles tables AuthMySQLGroupTable "users, users_roles" AuthMySQLGroupField users_role.rid # Where clauses AuthMySQLUserCondition "users.status = 1 and users.access <> 0" AuthMySQLGroupCondition "users.uid = users_roles.uid AND users_roles.rid > 2" # Do it to it! AuthMySQLPwEncryption md5 AuthMySQLEnable On require valid-user |
Und wenn alles klappt kann man sich dann mit den Login-Daten aus der Datenbank anmelden! 😉
Quelle: [http://drupal.org/node/156547|drupal.org: Sharing authentication with HTTP-Auth]