【问题标题】:Issues using Laravel before auth filter?在 auth 过滤器之前使用 Laravel 的问题?
【发布时间】:2014-06-04 03:55:21
【问题描述】:

我在 laravel 中使用过滤器时遇到问题。 这是一段代码

Route::get('admin/login', function()
{
return View::make('admin.login');
});

Route::get('admin/logout', function()
{
    Auth::logout();
    return Redirect::to('admin/login');
});

Route::post('admin/login', function()
{
$userdata = array('username' => Input::get('username'),
                  'password' => Input::get('password'));

if (Auth::attempt($userdata))
{
    return Redirect::to('admin');
}
else
{
    return Redirect::to('admin/login')->with('login_errors',true);
}
});

Route::get('admin', array('before' => 'auth', function() {
    return Redirect::to('admin');
}));

Route::filter('auth', function()
{
    if (Auth::guest()) return Redirect::to('admin/login');
});

问题是当我打开 /admin 时,它会将我重定向到 admin/login(这很好)。 现在,如果我输入正确的用户名和密码,它应该带我到 /admin 页面,但它再次将我重定向回 admin/login 页面。 我想每当我希望它重定向我到 /admin 时,(在 auth 之前)过滤器就会运行,它会将我带回 admin/login。

请帮忙

【问题讨论】:

  • 您不认为您的身份验证尝试失败了吗?
  • 不,它没有失败。它不会进入其他部分。我查过了
  • 然后将一些结果输出添加到过滤器以检查它是否是实际问题。一般来说,您的代码应该可以工作,所以它在您身边。
  • 我在过滤器中返回了“Hello”,它的工作原理是我在 /admin 视图中得到了“hello”

标签: php laravel


【解决方案1】:

据我说,您在这里有一个重定向循环:

Route::get('admin', array('before' => 'auth', function() {
    return Redirect::to('admin');
}));

如果auth 过滤器通过,您正尝试重定向到管理页面,但这是同一条路线。

【讨论】:

  • 那么应该用什么来代替这个?
  • 我必须说,这对我很有帮助。该死的。
猜你喜欢
  • 2023-04-11
  • 1970-01-01
  • 1970-01-01
  • 2020-04-22
  • 2013-04-03
  • 2019-05-09
  • 2021-12-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多