2009-01-19 34 views
12

我正在使用PHP編寫Web應用程序。我想爲此使用MVC模式,並決定使用CodeIgniter。我的應用程序將有一些頁面需要驗證,而有些頁面則不會。我想用一種非常通用的方式來設計它,這樣就不會有代碼重複。任何一個人都可以指出一些很好的「設計/階級結構」嗎?使用CodeIgniter進行用戶身份驗證

+0

你可能想看看https://github.com/delight-im/PHP-Auth,它既是框架不可知的,也是數據庫不可知的。 – caw 2016-09-21 05:33:10

回答

8

寫一個自定義庫,你可以自動加載你的代碼點火器應用程序在每個頁面視圖。它應該有以下功能:

  • 驗證用戶即。檢查用戶是否登錄
  • 登錄ie ie。設置會話變量或東西
  • 您註銷

然後在您的控制器類,你可以做一個調用構造函數中的身份驗證功能,然後根據結果繼續正常或重定向到一個登錄界面與訪問被拒絕的消息。

請在代碼點火器維基「認證」搜索,並有多項成果,可以幫助:http://codeigniter.com/wiki/

+2

我一直把登錄/註銷功能(以及其他一些功能)放到「auth」控制器中。在任何單獨的控制器中,我可以通過查看$ this-> session-> userdata('uid')是否已設置來檢查用戶是否已登錄。那是不好的做法? – Mala 2010-07-01 00:08:59

3

如果「某些頁面」是指某些控制器(視圖的網關),那麼您可能需要研究控制器繼承。用你自己的擴展默認的CodeIgniter控制器,並在構造函數中進行身份驗證檢查(檢查會話中是否有登錄標誌或其他內容,如果沒有登錄,則重定向到登錄頁面)。然後,所有需要驗證的控制器都需要擴展新的父控制器。而已。

轉向CodeIgniter論壇並搜索一些不同的方式來擴展控制器。這裏是一個http://codeigniter.com/forums/viewthread/89768/#452890

0

我一直在尋找到同樣的事情最近,我發現了一個笨叉叫Kohana那包括一個不錯的authentication module。如果您是在CI上設置的,也許可以將Kohana的auth模塊向後調整爲CI會爲您節省一些時間?如果您剛開始使用您的項目並且PHP5可以使用,請考慮切換;他們是非常相似的框架。

0

訪問GitHub和搜索笨驗證或認證,或者檢查CodeIgniter Wiki,你會發現具有不同特徵的許多圖書館..探索,並且能夠選擇一個你需要的!但要小心,許多是CI 2,並且您必須ucfirst the classes才能與CI 3一起使用,否則它們根本不工作。

0

使用flexi auth流行的​​庫的修改版本。它更先進,可以立即完成所有工作。

flexi auth是一個免費的開源用戶認證/登錄庫,用於CodeIgniter 2.0+框架。

我知道這太晚了,但我希望別人會發現它有幫助。 乾杯!