0
我的網站laravel-3
開發使用不同的會話設置有兩個區別的部分:Laravel 3如何根據URL
- 公共。網址是哪
/
- 管理。哪個網址是
/admin
在公共部分,用戶可以登錄訪問他們的帳戶,而在管理員中,只有具有所需權限的用戶纔可以登錄。
現在我無法區分正在使用的部分與另一部分的會話,因爲兩者都使用相同的session
配置參數,因此任何登錄公共部分的人都可以進入管理員區域。
我一直在思考上定義了admin
部分的環境和cookie
和path
定義不同的值:
$environments = array(
// Local
'admin' => array('http://localhost*/admin'), // To handle anything inside section "admin"
'local' => array('http://localhost*'), // To handle everything else
);
但由於Request::detect_env()
只檢查與URL根這些規則,admin
環境從來都不是看到(laravel/core.php:183)
。
$root = Request::foundation()->getRootUrl();
$environment = Request::detect_env($environments, $root);
我想你在'login_admin_filter'內調用'Auth :: attempt()'?這使用我試圖自定義的會話參數結束。 –
我在過濾器裏面驗證:'Auth :: check()'。如果失敗,我將重定向登錄表單,嘗試用try()連接用戶。難點在於區分2種登錄方式(1個admi和1個普通用戶),但我認爲這是一項基本功能。我不是Laravel的專家,但它就像我已經理解了Auth :: – Fractaliste
的實現哦,在過濾器中,您應該驗證Auth :: check()是否爲true,如果他具有良好的權限(使用[Auth :: getUser ](http://laravel.com/api/source-class-Illuminate.Auth.Guard.html#502-510)),那麼你可以切換取決於個案。 – Fractaliste