【发布时间】:2019-06-13 11:09:46
【问题描述】:
我想使用 admin Guard 来授权查看 laravel Horizon,但我必须以用户和管理员身份登录。
这是我的 HorizonServiceProvider.php 代码
class HorizonServiceProvider extends HorizonApplicationServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
parent::boot();
// Horizon::routeSmsNotificationsTo('15556667777');
// Horizon::routeMailNotificationsTo('example@example.com');
// Horizon::routeSlackNotificationsTo('slack-webhook-url', '#channel');
// Horizon::night();
}
/**
* Register the Horizon gate.
*
* This gate determines who can access Horizon in non-local environments.
*
* @return void
*/
protected function gate()
{
Gate::define('viewHorizon', function () {
return \Auth::guard('admin')->check();
});
}
}
如果我以使用和管理员身份登录,它可以正常工作。但是当我仅以管理员身份登录时,gate 的结果是:
array:4 [▼
"ability" => "viewHorizon"
"result" => null
"user" => null
"arguments" => "[0 => null]"
]
感谢您的帮助
【问题讨论】:
-
更正此行
It works OK if I am logged in as used AND admin. But when I am logged in only as admin the result from gate is:似乎没有意义。 -
这意味着如果我用user guard和admin guard登录我可以访问horizon,如果我用admin guard登录我访问horizon时得到403
标签: php laravel laravel-horizon