laravel horizon
控制面板授权#
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 不需要身份验证。
升级 Horizon
当你升级到 Horizon 的一个新的主要版本时,你需要仔细阅读 升级指南。
此外,升级到新的 Horizon 版本时,你应该重新发布 Horizon 资源:
php artisan horizon:publish