我使用Symfony3用於與一個Web應用程序的用戶管理,如果沒有登錄到登錄頁面。 我插在我的應用程序的登錄和跟隨我的header.html.twig登記表格。這個文件(標題)被插入到我的主文件(base.html.twig)中,這意味着它被插入到我的幾乎所有頁面中。阻止用戶重定向/ Symfony3 FosUserBndl
<div class="modal fade" id="registerModal" role="dialog">
{{ render(controller('UserBundle:Registration:Register', {'request': app.request})) }}
</div>
<div class="modal fade" id="loginModal" role="dialog">
{{ render(controller('UserBundle:Security:Login')) }}
</div>
的問題是,當我嘗試訪問主頁http://localhost/baseurl/web/app_dev.php/我重定向到http://localhost/baseurl/web/app_dev.php/loginfos_user_security_login
(在security.yml的login_path配置FosUserBundle登錄路由)。 我不知道如何配置和使用在我已overrided的情況下的FUB並插入在報頭中security_login形式作爲隨後
我security.yml:
security:
encoders:
Symfony\Component\Security\Core\User\User: plaintext
FOS\UserBundle\Model\UserInterface: sha512
providers:
fos_userbundle:
id: fos_user.user_provider.username_email
firewalls:
dev:
pattern: ^/(_(profiler|wdt)|css|images|js)/
security: false
main:
pattern: ^/
form_login:
login_path: fos_user_security_login
check_path: fos_user_security_check
provider: fos_userbundle
csrf_token_generator: security.csrf.token_manager
default_target_path:/
failure_path:/
logout:
path: /logout
target:/
anonymous: true
remember_me:
secret: '%secret%'
lifetime: 604800 # 1 week in seconds
path: /
role_hierarchy:
ROLE_SECRETAIRE: [ROLE_USER]
ROLE_ADMIN: [ROLE_SECRETAIRE]
access_control:
- { path: ^/login, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/register, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/resetting, role: IS_AUTHENTICATED_ANONYMOUSLY }
- { path: ^/admin/, role: ROLE_SECRETAIRE }
config.yml:
# FOSUserBundle Configuration
fos_user:
db_driver: orm
firewall_name: main
user_class: UserBundle\Entity\User
use_listener: true
use_flash_notifications: true
use_authentication_listener: true
use_username_form_type: true
model_manager_name: null # change it to the name of your entity/document manager if you don't want to use the default one.
from_email:
address: [email protected]
sender_name: Gauthier
profile:
form:
type: FOS\UserBundle\Form\Type\ProfileFormType
name: fos_user_profile_form
validation_groups: [Profile, Default]
change_password:
form:
type: FOS\UserBundle\Form\Type\ChangePasswordFormType
name: fos_user_change_password_form
validation_groups: [ChangePassword, Default]
registration:
confirmation:
enabled: false
template: '@FOSUser/Registration/email.txt.twig'
form:
type: UserBundle\Form\Type\RegistrationType
name: fos_user_registration_form
validation_groups: [Registration, Default]
resetting:
token_ttl: 86400
email:
template: '@FOSUser/Resetting/email.txt.twig'
form:
type: FOS\UserBundle\Form\Type\ResettingFormType
name: fos_user_resetting_form
validation_groups: [ResetPassword, Default]
service:
mailer: fos_user.mailer.default
email_canonicalizer: fos_user.util.canonicalizer.default
username_canonicalizer: fos_user.util.canonicalizer.default
token_generator: fos_user.util.token_generator.default
user_manager: fos_user.user_manager.default
- 編輯 -
當我加入我的路線 '主頁'(http://localhost/baseurl/web/app_dev.php/)匹配的控制器die('ok');
,我不重定向到/login
,但我有 「OK」在白頁上打印。我不明白的地方重定向到/登錄完成
您可以從security.yml上form_login配置,看到這樣的:https://github.com/FriendsOfSymfony/FOSUserBundle/issues/849。 –
我不確定這是同一個問題。我的問題是,如果沒有登錄,我會重定向到/登錄,但無論如何感謝您的時間 – Gauthier