如何扩展 Laravel 中内置的身份验证以处理控制器构造函数中的授权?

How can I extend the authentication built into Laravel to handle authorization in controller constructors?

我有一个使用内置基本 Laravel 身份验证的 Laravel 应用程序,但除了能够对用户进行身份验证之外,我还需要能够执行诸如检查权限和授权他们执行给定的控制器操作,以及检查用户所在站点的子域并相应地允许他们访问。

为了获得授权,我遇到了 Spatie 并能够对其进行设置并使其正常工作。好像还好。但是,我不确定将它集成到我的控制器中的最佳方式。

如果可能,我想在控制器构造函数中检查 Spatie 权限并相应地阻止访问,而不是在每个控制器操作中检查授权。 Laravel有什么好的方法吗?我怎样才能将用户指向未经授权的访问视图或将他们重定向到登录屏幕等,从控制器构造函数?

同样,如果用户试图执行对给定子域无效的操作,我如何阻止他们/从构造函数重定向他们?谢谢。

中间件是正确的选择...您可以在控制器的构造函数或路由中使用它。

https://laravel.com/docs/5.7/middleware