2014-10-17 58 views
0

我一直在玩使用fatfree的Auth使用两个路由登录和注销。第一次我使用登录在一个URL对话框上来要求用户名和密码。在输入 在表字段'user_name'中存在的用户名和'user-pass'字段中的密码 我的结果为$ true,因此网页显示正常。有趣的是,我没有得到代码 新会话();任何地方,然后当我然后去url /注销
echo $ f3-> get('SESSION.pass');正确显示提示Auth启动会话身份验证和fatfree框架

在我的/注销路由后echo $ f3-> get('SESSION.pass'); 我有$ f3-> clear('SESSION');

如果我在/ login url和logout url之间翻转,对话框不再显示,注销仍然显示'1234',它是SESSION.pass。我会想到,在去/注销网址会话将清除,所以在回到/登录网址后,我虽然会弹出登录对话框登录。

简而言之,我的问题是“您如何注销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(); //显示网络登录提示以验证用户身份 $ 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'); 
} 

); 

回答

3

其实你的问题是“如何从HTTP基本身份验证注销”。 在这里有几个话题和答案,就像这个How to log out user from web site using BASIC authentication? 所以如果你想完全控制登录/注销机制,你可能会更好地使用自己的html表单而不是浏览器的基本登录框。

+0

干杯ikkez我切换到使用Web的Web形式与POST来路由和使用想法在这里:https://groups.google.com/forum/#!topic/f3-framework/4Yl-bZxTMVE im happy with the way它只有一个问题,我试图在一个路线:function beforeRoute($ f3){}而不是正常的$ f3-> route('GET/somepage', 函数($ f3){}它没有工作 - 我误解了它或者输入了错误 – user2984700 2014-10-19 15:39:43

+0

没有beforeroute是从任何你设置了路由的控制器类调用的钩子,所以如果你有$ f3-> route('GET/somepage','Controller/Page') ;然后在这条路线之前路由器进入你的页面类控制器/ page.php – ikkez 2014-10-22 05:53:12

+0

确定auth工作和一个没有廉价的论坛在这里:http://www.accra-guesthouse.com/forumTopics将阅读fatfree文档 – user2984700 2014-10-27 10:11:41

相关问题