我創建一個URL的電子郵件中發送這樣的:重定向到登錄頁面,並保持網址,以獲取參數的Symfony 2.8
$url = $this->getContainerInterface()->get('router')->generate(
'crmpiccobundle_view_subdomain_modify', [
'subdomain' => $site->getSubdomain(),
'subdomain_username' => $site->getSubdomain(),
], UrlGeneratorInterface::ABSOLUTE_URL),
該URL通過下面的方法在我的控制器處理:
/**
* @Route(
* "/view/{subdomain}/modify",
* name="crmpiccobundle_view_subdomain_modify"
*)
*
* @Security("is_granted('IS_AUTHENTICATED_FULLY')")
* @Template("CRMPiccoBundle:Admin/View/Modify:index.html.twig")
*
* @param Request $request
* @param string $subdomain
*
* @return array
*/
public function subdomainModifyViewAction(Request $request, string $subdomain)
{
因此,如果用戶沒有登錄,路由/view/{subdomain}/modify
需要認證意味着他們將被踢到登錄屏幕。我試圖實現的是通過URL中的登錄頁面(例如/login?subdomain_username=crmpicco
)或其他方式將'subdomain'或'subdomain_username'(我意識到這裏有重複)傳遞到登錄頁面。
我不認爲設置會話變量是合適的,因爲腳本是由cron而不是瀏覽器中的用戶運行的。
我可以從/view/crmpicco/modify?subdomain_username=crmpicco
轉到/login?subdomain_username=crmpicco
嗎?
security.yml
:
access_control:
- {path: /, roles: IS_AUTHENTICATED_ANONYMOUSLY}
- {path: /admin, roles: ROLE_USER}
- {path: /admin/view, roles: ROLE_USER}
_「我不認爲,因爲腳本是由cron和沒有用戶在瀏覽器中運行設置會話變量是合適的。」 _ - 什麼,你有一個cron讀取用戶的電子郵件和點擊裏面的鏈接...? – CBroe
@CBroe不,我正在使用亞馬遜的SQS隊列,我推送請求發送此電子郵件。當處理該隊列時,我的代碼會調用一個方法,併發送電子郵件。如何在進入登錄URL時維護GET參數有什麼建議嗎? – crmpicco
將目標URL存儲在會話中,或將其作爲參數追加。 – CBroe