【发布时间】:2014-10-17 16:46:25
【问题描述】:
我一直在使用两个路由登录和注销来玩 fatfree 的 Auth。我第一次在 url 中使用登录时,出现对话框询问用户名和密码。在输入表字段'user_name'中存在的用户名和字段'user-pass'中的密码后,我得到true for $result,因此网页显示它有效。有趣的是,当我转到 url /logout echo $f3->get('SESSION.pass'); 时,我还没有在任何地方获得代码 echo $f3->get('SESSION.pass');,这表明 Auth 开始了一个会话。
在echo $f3->get('SESSION.pass'); 之后的我的/logout 路由中
我有$f3->clear('SESSION');。
但是,如果我随后在/login url 和注销 url 之间切换,对话框不再显示,注销仍然显示“1234”,即 SESSION.pass。我原以为在转到/logout url 后会话会清除,所以在返回/login url 后我会弹出登录对话框进行登录。
简而言之,我的问题是“您如何注销 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');
}
);
【问题讨论】: