przekierowanie wartownika laravel :: nie działa
Próbuję poprawnie ustawić pakiet wartowników w mojej aplikacji.
Mogę zalogować i wylogować użytkownika oraz chronić trasy, ale nie mogę uzyskaćredirect::intended
działać poprawnie. Rozumiem, że użytkownik zostanie przeniesiony z powrotem na trasę, którą pierwotnie wywołał, zanim zostanie skierowany na stronę logowania. W tej chwili po prostu przekierowuje do strony domyślnej.
W moim routes.php mam następującą grupę:
Route::group(array('before' => 'sentryAuth'), function () {...}
W tej grupie umieściłem wszystkie chronione trasy.
W moim filters.php mam następujące filtry:
Route::filter('sentryAuth', function () {
if (!Sentry::check()) {
return Redirect::route('login');
}
});
Route :: filter ('sentryGuest', function () {
if (Sentry::check()) {
return Redirect::intended('dashboard');
}
});
W moim kontrolerze użytkownika mam następujący kod:
public function postAuthenticate()
{
try {
// Set login credentials
$credentials = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
// Try to authenticate the user
$user = Sentry::authenticate($credentials, false);
} catch (Cartalyst\Sentry\Users\LoginRequiredException $e) {
echo 'Login field is required.';
}
catch (Cartalyst\Sentry\Users\PasswordRequiredException $e) {
echo 'Password field is required.';
}
catch (Cartalyst\Sentry\Users\UserNotFoundException $e) {
echo 'User was not found.';
}
catch (Cartalyst\Sentry\Users\WrongPasswordException $e) {
echo 'Wrong password, try again.';
}
catch (Cartalyst\Sentry\Users\UserNotActivatedException $e) {
echo 'User is not activated.';
}
if (!Sentry::check()) {
return Redirect::to('user/login');
} else {
return Redirect::intended('dashboard');
}
}
Próbowałem uzyskać dostęp do strony „rezerwacje / tworzenie” bez zalogowania się. Zostałem przeniesiony na stronę logowania, zalogowałem się, ale następnie przeniesiono mnie do pulpitu nawigacyjnego, a nie do rezerwacji / tworzenia.
Czy coś mi umyka? Czy potrzebny jest dodatkowy kod, aby uzyskać zamierzony efekt?