2016-10-04 65 views
0

我已經和CodeIgniter一起工作了兩天,我喜歡它。對於初學者來說,它是創建Web應用程序的絕佳框架。如何使用Tank auth保護未註冊用戶的內容?

我使用Tank auth來設置登錄系統,到目前爲止我已經設法完成同樣的事情。

但有一件事我不明白。我一直在研究坦克認證代碼和谷歌搜索,但仍然無法圍繞這個非常簡單的問題 - 我如何保護我的網站內容未註冊的用戶? CodeIgniter中使用的方法是什麼?

可以說例如我有一個控制器產品與方法顯示。通過輸入www.mywebsite.com/index.php/products/show,我可以在我的網站上看到它們。現在我該如何禁止未註冊的用戶訪問(請參閱)我的產品?

我明白,這很可能是愚蠢的問題,但我不能沒有體面的理解這一點繼續前進。雖然它是基本的谷歌沒有答案...(或我不知道如何精確提問)

回答

0

假設你有坦克認證安裝和配置正確,你可以簡單地重定向某人登錄屏幕,如果他們不是' t已經登錄了任何特定的控制器功能。

if (!$this->tank_auth->is_logged_in()) redirect('auth/login'); 

如果你使用它確保只有在用戶登錄的任何功能的啓動可以加載它,因爲任何其他的用戶將被重定向了。同樣,如果您想鎖定整個控制器,只需將其放置在構造函數中即可。

與Tank Auth捆綁在一起的歡迎控制器顯示了一個很好的例子,因爲只有登錄用戶才能看到「您現在登錄」頁面。

+0

謝謝,這是一個很好的答案!只需要確定: 我希望我的導航菜單位於主頁頂部,僅在用戶登錄時才顯示「產品」。我在我的頁眉視圖中創建了導航菜單,並且我有用於處理靜態頁面的控制器頁面。這是否意味着我必須創建兩個視圖header_logged和header_notlogged並添加 'if(!$ this-> tank_auth-> is_logged_in()){this-> load-> view('templates/header_logged',$數據); } else { $ this-> load-> view('templates/header_notlogged',$ data); }' 我的控制器頁面? –

+0

你可以這樣做,如果你想嚴格控制你的視圖中的控制器風格的邏輯,但這將是那種用法,我只是把這個if語句放在視圖中,如果它只是做一個稍微改變菜單就是這樣。因此,您的視圖可能只有'<?php if($ this-> tank_auth-> is_logged_in(){?> * HTML for Products菜單項* '無論您將Products項添加到菜單 –