我正在尝试在我的应用程序中正确设置哨兵包。
我可以登录和注销用户并保护路线,但我似乎无法redirect::intended
正常工作。我的理解是,在被定向到登录页面之前,用户将被带回他们最初调用的路线。目前它只是继续重定向到默认页面。
在我的 routes.php 中,我设置了以下组:
Route::group(array('before' => 'sentryAuth'), function () {...}
在这个组中,我放置了所有受保护的路线。
在我的 filters.php 中,我有以下过滤器:
Route::filter('sentryAuth', function () {
if (!Sentry::check()) {
return Redirect::route('login');
}
});
Route::filter('sentryGuest', function () {
if (Sentry::check()) {
return Redirect::intended('dashboard');
}
});
在我的 userController 我有以下代码:
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');
}
}
我尝试在未登录的情况下访问“预订/创建”页面。我被带到登录页面,登录但随后将我带到仪表板而不是预订/创建。
我在这里错过了什么吗?我需要额外的代码才能使预期工作吗?