Я играл с Auth of fatfree, используя два маршрута входа и выхода. В первый раз, когда я использовал логин в URL-адресе, появилось диалоговое окно с запросом имени пользователя и пароля. После ввода имени пользователя, которое существует в поле таблицы «user_name», и пароля в поле «user-pass», я получил true
для $result
, поэтому веб-страница отображается, она работает. Интересно, что у меня еще нигде не было кода new Session();
, когда я перешел к URL-адресу /logout
, echo $f3->get('SESSION.pass');
был правильно отображен, предполагая, что Auth начинает сеанс.
В моем /logout
маршруте после echo $f3->get('SESSION.pass');
у меня $f3->clear('SESSION');
.
Тем не менее, если я затем переключаюсь между URL-адресом /login
и URL-адресом выхода, диалоговое окно больше не отображается, а выход из системы по-прежнему отображает «1234», который является SESSION.pass. Я бы подумал, что после перехода по URL-адресу /logout
сеанс будет очищен, поэтому, вернувшись к URL-адресу /login
, я бы открыл диалоговое окно входа в систему.
В двух словах, мой вопрос: «Как вы выходите из системы Auth»? Документация, кажется, не упоминает об этом.
$f3->route('GET /login',
function($f3)
{
$db = new \DB\SQL('mysql:host=localhost;port=3306; dbname=accra_names2','root','victoria');
$user = new DB\SQL\Mapper($db, 'users');
$auth = new \Auth($user, array('id'=>'user_name', 'pw'=>'user_pass'));
$result = $auth->basic(); // a network login prompt will display to authenticate the user
$f3->set('SESSION.pass','1234');
if($result)
//result true
{
echo "it works";
}
}
);
$f3->route('GET /logout',
function($f3)
{
echo "you want to log out ";
echo $f3->get('SESSION.pass');
$f3->clear('SESSION');
}
);