我剛開始學習Symfony 2教程。我創建了一個包含用戶類的包,並試圖按照說明設置登錄過程。我想我快到了,但是我現在正處於最後一個障礙。Symfony2 - 成功登錄後重定向
我已成立了一個包:丹\ AuthBundle,其中包含我的用戶類和另一束:丹\ HelloBundle我想只允許用戶訪問記錄。
我security.yml文件如下:
security:
encoders:
Dan\AuthBundle\Entity\User: sha512
providers:
main:
entity: { class: Dan\AuthBundle\Entity\User, property: username }
administrators:
entity: { class: DanAuthBundle:User }
firewalls:
secured_area:
pattern: ^/*
form_login:
check_path: /login_check
login_path: /login
always_use_default_target_path: false
default_target_path: /hello
access_control:
- { path: ^/hello/.* }
主要的routing.yml文件看起來是這樣的:
DanAuthBundle:
resource: "@DanAuthBundle/Resources/config/routing.yml"
prefix: /auth/
DanHelloBundle_homepage:
pattern: /hello/
defaults: { _controller: DanHelloBundle:Default:index }
login:
pattern: /login
defaults: {_controller: DanAuthBundle:Default:login }
login_check:
pattern: /login_check
我手動創建我的用戶類的幾個實例。
如果我嘗試訪問url/hello,我會正確重定向到登錄頁面。如果輸入的信息不正確,我會在模板中獲得正確的消息,但是,當我使用正確的詳細信息登錄時,會收到324(空響應)錯誤(此時,瀏覽器中顯示的URL是login_check)。
從閱讀文檔,我認爲我應該重定向到我最初嘗試訪問的頁面?
http://symfony.com/doc/current/book/security.html#using-a-traditional-login-form
默認情況下,如果提交的證書是正確的,用戶將 重定向到被請求的原始頁面(例如/管理/富)。 如果用戶最初直接進入登錄頁面,他會將 重定向到主頁。這可以高度自定義,例如,允許您將 重定向到特定的URL。
此外,如果我在輸入正確的詳細信息後嘗試訪問該頁面,我將再次被重定向到登錄頁面。
任何人都可以看到我是否錯過了任何明顯的東西?
這是我的日誌文件:
[2012-06-18十八點33分47秒] doctrine.DEBUG:SELECT t0.id AS ID1,t0.username AS USERNAME2,t0.salt AS salt3,t0.hashed_password AS hashed_password4 FROM User t0 WHERE t0.username =? ([「hello」])[] [] [2012-06-18 18:33:47] security.INFO:用戶「hello」已成功驗證 [] [] [2012-06-18 18:33 :47] event.DEBUG:Listener 「Symfony \ Component \ Security \ Http \ Firewall :: onKernelRequest」已停止 事件「kernel.request」的傳播。 [] [] [2012-06-18 18點33分47秒] event.DEBUG:監聽 「的Symfony \包\ FrameworkBundle \事件監聽\ RouterListener」 沒有 呼籲事件 「kernel.request」。 [] [] [2012-06-18 18點33分47秒] event.DEBUG:監聽 「的Symfony \包\ AsseticBundle \事件監聽\ RequestListener」 沒有 呼籲事件 「kernel.request」。 [] [] [2012-06-18 18點33分47秒] event.DEBUG:認證事件 「kernel.response」 監聽器 「的Symfony \分量\安全\ HTTP \防火牆\ ContextListener :: onKernelResponse」。 [] [] [2012-06-18 18點33分47秒] security.DEBUG:在 收件SecurityContext的會話[] []
任何意見理解。
謝謝。
你可以嘗試添加一個登錄監聽器重定向用戶:http://www.metod.si/login-event-listener-in-symfony2/ – Snroki
這裏也是我的回答與target_path: http://stackoverflow.com/a/17424321/1866083 – nvvetal