note 110792 deleted from features.http-auth by danbrown
| From: | danbrown@php.net | Date: | Sat, 08 Dec 2012 18:48:41 +0000 |
| Subject: | note 110792 deleted from features.http-auth by danbrown | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-192399@lists.php.net to get a copy of this message | ||
Note Submitter: Anonymous
----
<?php
BasicAuth::test(array(
'test_login' => '0b91dec4fe98266a03b136b59219d0d6', // testpass1
'user2' => '841c4221c2e7e0cefbc0392a35222512' // testpass2
),
$message = "Zaloguj sie do systemu",
$md5mode = true);
echo 'jest przeszÅo ;)...';
class BasicAuth {
private static $credentials;
private static $md5mode;
/**
* @author Szymon DziaÅowski 2012-12-08
* GÅówna metoda do sprawdzania autentykacji
* @param array $credentials - tablica z loginami (jako klucze tablicy) i hasÅami (jako
wartoÅci)
* @param string $message - (def: null) - WiadomoÅc która ma byÄ wyÅwietlona
użytkownikowi do okna w którym podaje siÄ login i hasÅo
* @param boolean $md5mode - (def: false) - okreÅla czy hasÅa w tym skrypcie sÄ
rpzechowywane jako plain text czy jako sumy md5
*/
public static function test($credentials,$message = null,$md5mode = false) {
self::$credentials = $credentials;
self::$md5mode = $md5mode;
$message = is_string($message) ? $message : 'Basic auth';
if(!self::check()) {
header("WWW-Authenticate: Basic realm=\"$message\"");
header('HTTP/1.0 401 Unauthorized');
die("I'm sorry - authentication failed");
}
}
protected static function check() {
$pw = self::$md5mode ? md5(self::gs('PW')) : self::gs('PW');
$us = self::gs('USER');
if (!$us) return false;
foreach (self::$credentials as $l => $p) {
if (($us && ($us == $l && $pw == $p))) return true;
}
return false;
}
protected static function gs($key) {
$key = 'PHP_AUTH_'.$key;
return isset($_SERVER[$key]) && $_SERVER[$key] ? $_SERVER[$key] : false;
}
}