有沒有辦法讓網址被重定向到登錄網址?Silex安全提供商從登錄路線獲取引薦網址
這裏是上下文,所以你知道我爲什麼問這個問題。我從顯示我正在使用的代碼開始。這是怎麼了註冊安全提供者:
$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),
),
)
));
注意這裏,我確保英語和法語的URL(/ EN /客戶端和/ FR /客戶端)。我沒有找到一種方法讓login_path指向正確的區域設置的正確登錄網址,所以我將它硬編碼到法文網址。
現在這裏是登錄路由:
$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。
感謝