ログインURLにリダイレクトされたURLを取得する方法はありますか?SilexセキュリティプロバイダがログインルートからReferer URLを取得しています
ここで私はなぜこの質問をしているのか分かります。私は使用しているコードを表示することから始めます。私は英語とフランス語のURL(/ EN /クライアントおよび/ FR /クライアント)を確保していますここで
$app->register(new Silex\Provider\SecurityServiceProvider(), array(
'security.firewalls' => array(
'client' => array(
'pattern' => '^/(en|fr)/client',
'form' => array('login_path' => "/fr/login", 'check_path' => "/fr/client/login_check"),
'users' => function() use ($app) {
return new UserProvider($app['pdoqueries']);
},
'logout' => array('logout_path' => '/logout', 'invalidate_session' => true),
),
)
));
注意:これは私がセキュリティプロバイダを登録しています方法です。 login_pathが正しいロケールで正しいログインURLを指すようにする方法が見つからなかったので、私はそれをフランス語のURLにハードコーディングしています。
は今ここにログインルートです:
$app->get('/{_locale}/login', function(Request $request) use ($app, $arrConfig) {
$referer = $request->headers->get('referer');
error_log(__FILE__ . ": " . __LINE__ . ": " . __FUNCTION__ ." : " . var_export($referer, true));
return $app['twig']->render('auth/form.twig', array(
'error' => $app['security.last_error']($request),
'last_username' => $app['session']->get('_security.last_username'),
'title' => 'Login',
'assetsUrl' => $arrConfig['assets_url']
));
})
->bind('login');
あなたは私が既にリクエストヘッダからのリファラを取得しようとしたことを見ることができます。残念ながらそれは働かない。 ユーザーがアクセスしようとしたURLを取得してそこからロケールを取得し、そのロケールにログインフォームのテキストを表示する方法が必要です。ログインが成功した後、ユーザーはそのURLにリダイレクトされるため、この情報はどこかに格納する必要があります。
おかげ