我仍然习惯了Sentry,但如果我纠正了我做对了。
问题是,当我在路线上应用过滤器时,它并不像我希望的那样工作。它应该检查用户是否已登录,如果未已登录,则将他/她重定向到登录页面。
我记录用户的方式:
public function postLogin()
{
$credentials = array(
'username' => $this->input->get('email_or_username'),
'password' => $this->input->get('password')
);
try
{
$user = $this->sentry->authenticate($credentials, false);
if ($user)
{
return $this->redirect->route('user.dashboard.index');
}
}
catch(\Exception $e)
{
return $this->redirect->route('login')->withErrors(array('login' => $e->getMessage()));
}
}
应该可以吗?接下来我得到了我的路线(我只将其分组以测试此特定路线资源上的过滤器):
Route::group(array('before'=>'Sentry'), function()
{
Route::resource('user', 'UserProfileController',
array('names' =>
array(
'index'=>'this.user.index',
'create'=>'this.user.create',
'store'=>'this.user.store',
'show'=>'this.user.show',
'edit'=>'this.user.edit',
'update'=>'this.user.update',
'destroy'=>'this.user.destroy'
)
)
);
// (index)show your profile info, (edit,update)Edit and update your profile
});
最后应该检查用户的过滤器,如果他/她没有登录则重定向:
Route::filter('Sentry', function()
{
if (!Sentry::check()){
return Redirect::route('login');
}
});
我已经被困在这几天了,我已经让很多其他人看了看,他们都说了同样的话:"嗯,那很奇怪。 ..&#34 ;.所以,我希望有人能在这方面给我一些意见。