2017-10-27 6 views
2

私はこれを持っている:は、パスなしでルートを作成します[Symfony3]ファイアウォール/メイン/ form_login中のsecurity.ymlで

default_target_path: after_login 
always_use_default_target_path: true 

私はafter_loginという名前のルートを作成したいのですが、パスを含まないが、symfonyは私をリダイレクトしますログイン後のホームページ。

/** 
* @Route(name="after_login") 
*/ 
public function afterloginAction() 

私は誰もこのコントローラのメソッドにアクセスしません。

この方法にログインした後にリダイレクトするようなルートを作成することはできますか。

+0

'./bin/console debug:router'を実行しましたか?あなたのルートはそこにリストされる必要があります。 – mblaettermann

答えて

1

これは@Routeでは不可能です。ここに間違ったものがあります、なぜあなたはそれを望みますか?

+0

私はいくつかの変数をセッションに追加したいが、ログイン後は1回しか追加しない。 – demotywatorking

+0

大丈夫、このパスを入力するにはパスと必要なログインを追加してください。現在のユーザーがセッション変数を設定してリダイレクトしていない場合現在のユーザーがセッション変数を再度リダイレクトする場合 –

+0

私の答えを – mblaettermann

2

いくつかの変数をセッションに追加したいが、ログイン後に1回だけ追加する。これを近づい

ベストな方法は、security.interactive_loginイベントをリッスンすることになります。

default_target_pathはそのためのものではありません。それはコントローラアクション、ユーザープロファイルなどへのリダイレクトだけです。

コントローラーアクションを1回使用してから、セッションキーを設定してアクセスできないようにするのは面倒です。

https://symfony.com/doc/current/components/security/authentication.html#authentication-eventsを読んでください。イベントリスナーを使用すると、自動的に外界から隠されます。

+0

編集しました。このメソッドは、いくつかの変数をセッションに追加しますが、ログイン後に1回だけ追加します。エラーを避けるために、どのユーザーにもアクセスさせたくありません。 – demotywatorking

関連する問題