我正在使用 JWT : person-api 为人和工作人员在Laravel中构建实时应用程序并使用自定义警卫工作人员的-api 。它们代表不同的模型,而不是具有角色的模型。
人可以请求某个作业,工作人员可以接受该作业。我为每个模型设置了一个专用表,作业是人和工作人员之间的中间表,其中 person_id 和 worker_id 。当请求作业时, worker_id 列将设置为null,直到工作人员接受它为止。
当人请求作业时,会在名为Jobs的私人频道中触发并广播一个事件。我可以通过检查事件中作业的 person_id 来授权该频道中的人员。此时,任何工作人员都可以使用该作业,直到有人接受该作业,然后只有工作人员才能执行该作业作业< /强>
我的问题是,如何在同一个频道中使用两个不同的警卫实现多重身份验证,其中授权方法可能因作业的状态而异?
例如:
这是我的频道广播路线中的代码:
Broadcast::channel('job.{job}', function ($user, \App\Job $job) {
// authorization condition goes here
});
$user
可能是人或工作人员,并且授权条件可能会根据同一频道中作业的事件而发生变化。< / p>
编辑:我的问题被标记为此question可能重复,我不同意。我不仅仅是在谈论使用JWT验证用户,这已经实现了。我所说的是在同一个广播频道中使用不同的警卫认证多个用户,并根据用户类型和作业状态更改授权条件。