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

Печать/экспорт