【发布时间】:2014-07-17 22:34:57
【问题描述】:
我有一个视图输入一个帐户,然后调用控制器验证数据,然后使用身份验证方法保存
public function doLogin(){
$rules = array(
'email' => 'required|email',
'password' => 'required'
);
$validator = Validator::make(Input::all(), $rules);
//dd(Input::all());
if($validator->fails()){
return Redirect::to('usuarios')->withErrors($validator)->withInput(Input::except('password'));
}else{
$userdata = array(
'email' => Input::get('email'),
'password' => Input::get('password')
);
if(Auth::attempt($userdata)){
return View::make('principal');
}else{
return Redirect::to('usuarios');
}
}
}
我还有退出会话的功能
Route::get('usuarios/logout', function(){
Auth::logout();
return Redirect::to('usuarios'); //login page
})->before('auth');
问题是当我按下浏览器的后退按钮时,我可以毫无问题地使用应用程序但无需身份验证。
路线
Route::get('usuarios', function(){
return View::make('login');
})->before('guest');
Route::get('usuarios/view', function(){
$usuarios = Usuario::paginate(5);
return View::make('viewusuario', array('usuarios' => $usuarios));
})->before('auth');
Route::get('usuario/create', function(){
return View::make('formusuario');
})->before('auth');
过滤器
Route::filter('auth', function()
{
if (Auth::guest()) return Redirect::guest('usuarios'); //login page
});
Route::filter('guest', function()
{
if (Auth::check()){
return View::make('principal'); //home page
}
});
我该如何解决?
【问题讨论】:
-
因为它是浏览器缓存 - 它不会“重新加载”您的页面。
-
你的意思是看到?
-
用户将看到而不是使用,但将无法做任何事情......
-
@zhelon 人们说这是缓存,点击后退按钮可能是真的,但我想我可以问的问题是:注销然后回击,然后您可以像登录一样使用该应用程序吗?因此,不仅可以像登录一样看到上一个屏幕,还可以看到该页面的实际操作,或者一旦您执行操作,它会要求您登录吗?
标签: php authentication browser laravel laravel-4