我想为广播路由实现多个身份验证保护。
一个特定的守卫正在侦听一个特定的路由,这就是为什么我想使用路径请求来定义应该使用哪个身份验证守卫的原因。
下面的实现不起作用。我没有收到任何错误消息。完全没有反馈。专用频道不起作用。
如果我传递字符串"auth:admin"而不是$guard变量,它可以工作。
当我从广播管理器中获取属性时,如果我传递字符串或变量,结果似乎相同。
知道我做错了什么吗?
<?php
namespace AppProviders;
use IlluminateSupportServiceProvider;
use IlluminateSupportFacadesBroadcast;
class BroadcastServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$guard = Request::path() === 'home' ? 'auth:admin' : 'auth:master';
Broadcast::routes(['middleware' => ['web', $guard]]);
require base_path('routes/channels.php');
}
}
只需向身份验证中间件提供多个防护,以便它知道哪个防护用于身份验证:
Broadcast::routes(['middleware' => ['web', 'auth:admin, master']]);