阅读(2835)
赞(13)
Laravel 8 控制面板授权
2021-07-09 11:44:35 更新
Horizon 在 /horizon
上显示了一个控制面板。默认情况下,你只能在 local
环境中访问这个面板。在你的 app/Providers/HorizonServiceProvider.php
文件中,有一个 gate
方法。控制着在非本地环境中对 Horizon 的访问。您可以根据需要修改此方法,来限制对 Horizon 的访问:
/**
* 注册 Horizon 授权
*
* 此方法决定了谁可以在非本地环境中访问 Horizon
*
* @return void
*/
protected function gate()
{
Gate::define('viewHorizon', function ($user) {
return in_array($user->email, [
'taylor@laravel.com',
]);
});
}
注意:Laravel 会自动将 authenticated 用户注入到 Gate 中。如果你的应用通过另一种方式提供了 Horizon 的安全性,比如 IP 限制,那么你的 Horizon 用户可能不需要 「登录」。因此,你需要将上面的
function ($user)
更改为function ($user = null)
,以强制 Laravel 不需要身份验证。