Мой сайт разработан с laravel-3
имеет две дифференцированные секции:Laravel 3 Как использовать различные параметры сеанса в зависимости от URL
- общественного. Какой адрес:
/
- администратор. Какой url is
/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);
Я предполагаю, что вы вызываете 'Auth :: пытаться()' внутри 'login_admin_filter'? Это заканчивается использованием параметров сеанса, которые я пытаюсь настроить. –
Я проверяю: 'Auth :: check()' внутри фильтра. Если это не удается, я перенаправляю форму входа, которые пытаются подключить пользователя с помощью попытки(). Трудность будет заключаться в том, чтобы различать 2 вида логина (1 адми и 1 нормальный пользователь), но я думаю, что это базовая функциональность. Я не эксперт Laravel, но это похоже на то, что я понял реализацию Auth :: – Fractaliste
О, в фильтре вы должны проверить, что Auth :: check() - это истина и если у него хорошие разрешения (с помощью [Auth :: getUser ] (http://laravel.com/api/source-class-Illuminate.Auth.Guard.html#502-510)), то вы можете переключиться в зависимости от случаев. – Fractaliste