2014-10-17 99 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