Содержание
Auth
Класс Auth используется для аутентификации учетных данных пользователя (имя пользователя / пароль) по списку данных доступа (хранящемуся в таблице базы данных и т. Д.).
Пространство имен: \
Расположение файла:lib/auth.php
Инициализация
$auth = new \Auth (string $storage [, array $args = NULL ]);
Вы можете сопоставить ключи класса id и имена pw полей таблицы данных (например, «имя пользователя», «пароль»).Пример для F3 Jig (простой файловый db):
$db = new \DB\Jig('data/'); $db_mapper = new \DB\Jig\Mapper($db, 'users'); $auth = new \Auth($db_mapper, array('id' => 'username', 'pw' => 'password'));
В настоящее время доступны следующие ресурсы хранения данных аутентификации:
- Джиг
- SQL
- MongoDB
- LDAP
- SMTP
Аутентификация
Login
Используется для проверки отправленных учетных данных по списку данных аутентификации
bool login ( string $id, string $pw [, string $realm = NULL ] )
login() это основной метод класса Auth. Передав ему учетные данные для входа, он будет аутентифицировать пользователя по ресурсу хранилища аутентификации объектов аутентификации. Возвращая true в случае успеха, falseв случае неудачи.
Пример:
$db = new \DB\Jig('data/'); $user = new \DB\Jig\Mapper($db, 'users'); $auth = new \Auth($user, array('id'=>'user_id', 'pw'=>'password')); $login_result = $auth->login('admin','secret_pwd'); / / returns true on successful login
Basic
Механизм базовой аутентификации HTTP
bool basic ( [ string $func = NULL ] )
Метод basic() обеспечивает способ аутентификации пользователя без использования форм веб-страницы. В браузере отобразится диалоговое окно входа в систему, предлагающее пользователю ввести свое имя пользователя и пароль.
$func- имя функции обратного вызова, которую можно использовать для манипулирования отправленным password перед тем, как он будет сравниваться с паролем, хранящимся в ресурсе хранения данных, например, если вы хешируете свои пароли перед сохранением их в базе данных. Отправленный пароль передается вашей функции обратного вызова в качестве аргумента.
$db = new \DB\SQL('mysql:host=localhost;dbname=project1', 'root', 'topsecret123'); $user = new \DB\SQL\Mapper($db, 'users'); $auth = new \Auth($user, array('id'=>'user_id', 'pw'=>'password')); $auth->basic(); // a network login prompt will display to authenticate the user