Я использую Symfony 2.6.6. И моя структура папокЗафиксируйте все URL-адреса в Symfony2
ExampleBundle
Controller
LoginController.php
Other1Controller.php
Other2Controller.php
...
LoginController
имеет loginAction()
и loginCheckAction()
LoginAction()
покажет регистрационную форму и loginCheckAction()
для проверки того, что.
Я вижу учебник для создания LoginController.php
. После авторизации пользователя путем проверки я установил:
$session->set('login', $login);
Моя цель: Все пользователи должны войти в систему, прежде чем получить доступ ко всем страницу моего веб-приложения.
Но на моем сайте много контроллеров и действий (страниц).
Моя идея: проверка сеанса «входа» существует во всех действиях всех контроллеров и перенаправление на действие входа, если не существует.
Но я думаю, что это слишком руководство. Каков наилучший способ сделать это с Symfony?
Update 1:
После этого я пытаюсь добавить некоторый код в мой security.yml
файл. Он перенаправляется на страницу входа в систему, если пользователь не зарегистрирован, но всегда перенаправляется на страницу входа. Я хочу, чтобы пользователь входил в систему (имеет раздел «login»), он может обращаться к другим страницам. как сделать что благодаря
# .../security.html
security:
firewalls:
ex_login:
pattern: ^/ex/login$
anonymous: ~
security: false
secured_area:
pattern: ^/ex
form_login:
check_path: /ex/logincheck
login_path: /ex/login
logout:
path: /ex/logout
target: /ex
обновления 2
Вот мой Login Controller
loginAction() {
$session = $this->getRequest()->getSession();
if ($session->has('login')) {
//redirect to home/index
}else {
//render login form
}
}
logincheckAction(Request $request) {
if($request->getMethod()=='POST') {
// check user input (username && password) in database
if (ok){
$session->set('login', 'true');
//redirect to home/index
}
else {
//redirect to login/index
}
}else {
//redirect to login/index
}
}
logoutAction() {
//remove login session
// redirect to login/index
}
Вот мой Other1Controller.php
indexAction(){
echo 'page1';
}
Он всегда Перенаправление на страницу входа в систему. После того, как я заполнил свое поле и прошу войти в систему, он все же перенаправляется на страницу входа? как я могу исправить это.
почему нет компонента использовать безопасности в Symfony ? – ghanbari
прочитайте эту книгу: http://symfony.com/doc/current/book/security.html – ghanbari
@ghanbari Вы имеете в виду, что я делаю правильный путь, но используя security.yml вместо Моя идея? PLZ дать мне правильный пример. B/C у меня есть много контроллеров – DeLe