2017-05-24 5 views
0

でURLのGETパラメータを維持:ログインページにリダイレクトして、私は、このような電子メールで送信する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)または他の手段によって、「サブドメイン」または「サブドメインユーザー名」(ここでは重複があることがわかります)を渡すことです。

スクリプトは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} 
+1

_ "セッション変数を設定するのは適していません。なぜなら、スクリプトはブラウザではなくcronによって実行されるからです。" - あなたはユーザーの電子メールを読んで内部のリンク...? – CBroe

+0

@CBroeいいえ、AmazonのSQSキューを使用していますが、このメールを送信するようリクエストしています。そのキューが処理されると、コード内でメソッドが呼び出され、電子メールが送信されます。ログインURLに行くときにGETパラメータを維持する方法に関する提案はありますか? – crmpicco

+0

セッションにターゲットURLを格納するか、パラメータとして追加します。 – CBroe

答えて

0

私はこれを実装することになった方法は、セッション(_security.default.target_path)のうち、ログイン成功時にリダイレクトして、引っ張ってそれを解析される先のURLを引っ張っていましたURLパラメータ出力(?username=crmpicco)。

関連する問題