Laravel授权频道与自定义后卫

时间:2017-04-01 18:51:26

标签: php laravel-5.3

我如何在这里描述的频道上进行授权

Defining Authorization Callbacks

Broadcast::channel('order.{order}', function ($user, Order $order) {
    return $user->id === $order->user_id;
});

有自定义守卫?

如果我使用标准版,它可以正常工作。如果我使用自定义后卫登录,它绝对不会起作用。

我这里有403例外(/vendor/laravel/framework/src/Illuminate/Broadcasting/Broadcasters/Broadcaster.php)

/**
 * Authenticate the incoming request for a given channel.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  string  $channel
 * @return mixed
 */
protected function verifyUserCanAccessChannel($request, $channel)
{
    foreach ($this->channels as $pattern => $callback) {
        if (! Str::is($pattern, $channel)) {
            continue;
        }

        $parameters = $this->extractAuthParameters($pattern, $channel);

        if ($result = $callback($request->user(), ...$parameters)) {
            return $this->validAuthenticationResponse($request, $result);
        }
    }

    throw new HttpException(403);
}

因为我在$ request-> user()中使用自定义保护(

oK,我将其更改为$ request-> user(' my_custom_guard')

现在它起作用了。但它不能与标准用户合作。

有什么想法吗?

0 个答案:

没有答案