[英]Redirect after user switching (impersonating) in Symfony 2
我到處搜索,但似乎不可能做到。
我能趕上SwitchEvent
從哪里來SwitchEventListener
並同時獲得冒領和目標用戶對象(一個被冒充的),但我真的想,基於目標用戶角色請求重定向到其他URL。
例:
我有兩個限制區域:“/ basic”和“/ elevated”,其中第一個需要ROLE_BASIC
,另一個需要ROLE_ELEVATED
角色。 現在,如果我當前以ROLE_ELEVATED
用戶身份登錄並希望使用URL切換到某個ROLE_BASIC
用戶:
/basic/?_switch_user=some_basic_user
這將導致AccessDeniedException ,我被迫首先導航到:
/?_switch_user=some_basic_user.
只有在那之后我才能導航到/ basic,因為令牌已被寫入會話。
現在, 這個問題 ,正如主題所暗示的那樣:在進行用戶切換后,有沒有辦法使用SwitchEvent
(或任何其他)重定向用戶?
好的,我終於可以訪問我的開發計算機,並查找了解決此問題的方法。
而且,我得說,它並不像我想要的那樣干凈,但交付日期至關重要,這是當時實現它的唯一方法。
所以,我基本上做的是發送AJAX(盡管我設置async
為false
)請求到URL /?_switch_user=some_basic_user
,等待答案,如果成功,我會向前導航到/basic/?_switch_user=some_basic_user
URL 。 我知道,這很快,很臟,幾乎不可靠......
希望這可以幫助....
您可以生成正確的鏈接開頭:
<a href="/basic/?_switch_user=some_basic_user">...</a>
當然,URL也可以由twig的path
助手生成:
<a href="{{ path('basic_homepage', { _switch_user: 'some_basic_user' }) }}">...</a>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.