【发布时间】:2015-04-21 10:27:30
【问题描述】:
出于某种原因,我有一个思维障碍,无法弄清楚可能是一个非常简单的解决方法。
我有一个 Laravel 5 应用程序,并且正在使用 Zizaco 的 Entrust 包进行访问控制。
我想保护一个路由,所以我在 routes.php 中使用路由保护,如下所示:
Entrust::routeNeedsRole('passtypes', array('admin'), null, false);
除了用户的会话已过期或他们未登录并尝试访问路由之外,这按预期工作。
在这种情况下,我希望先检查 Laravel 的身份验证,然后重定向到登录页面;但是 Entrust 首先重定向到 403 错误;这对于能够查看该页面但被告知他们没有访问权限的用户来说是令人困惑的,而不是他们没有登录/会话已过期。
我在控制器中而不是在路由中启动身份验证:
public function __construct()
{
$this->middleware('auth');
}
所以只需要知道如何获得相同的功能,但通过在路由权限要求之前检查身份验证。
谢谢
【问题讨论】: