我一直在使用两个路由登录和注销时使用auth of fatf。我第一次在网址中使用登录时,会出现询问用户名和密码的对话框。输入表字段中存在的用户名' user_name'和密码在字段'用户通过'我为true
获得$result
,因此显示网页有效。有趣的是,我没有在任何地方找到代码new Session();
当我转到网址/logout
echo $f3->get('SESSION.pass');
时,正确显示了Auth启动会话。
/logout
之后的echo $f3->get('SESSION.pass');
路线
我有$f3->clear('SESSION');
。
然而,如果我在/login
url和logout url之间翻转,则对话框不再显示,并且注销仍会显示' 1234'这是SESSION.pass。我会想到,在转到/logout
之后,会话会清除,所以回到/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');
}
);
答案 0 :(得分:3)
实际上您的问题是“如何从HTTP基本身份验证注销”。 这里有关于它的几个主题和答案,就像这一个How to log out user from web site using BASIC authentication? 因此,如果您想要完全控制登录/注销机制,那么使用自己的html表单而不是浏览器基本登录框可能会更好。