Laravel 广播私人频道无法授权

我尝试建立广播系统
在使用公有频道时一切是正常的,使用私有频道时本地是正常的,推到线上时进行连接它会告知我无权访问,资源403

[11:04:35 AM] - D2CqXToZoUwGnrGlAXXx could not be authenticated to private-App.User.64
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>403 Forbidden</title>
</head><body>
<h1>Forbidden</h1>
<p>You don't have permission to access /broadcasting/auth
mon this server.</p>
</body></html>
Client can not be authenticated, got HTTP status 403
[11:04:35 AM] - Preparing authentication request to: https://localhost
[11:04:35 AM] - Sending auth request to: https://localhost/broadcasting/auth

我不清楚我的本地为什么能够通过访问,我没有更改过认证看守器,所以默认的AUTH是可用的
这是我的initEcho:
Laravel 广播私人频道无法授权
Provider:

Laravel 广播私人频道无法授权
routes:

Laravel 广播私人频道无法授权
可以看到上述都是默认配置,我并未做什么更改
我希望知道为何无法授权,或如何调试授权

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

问题解决: 检查apache访问日志发现授权访问一直被拒绝再次检查配置 问题原因:laravel-echo-server.json里的authHost配置为localhost 在HTTPS协议下APACHE配置vhosts-le-ssl.conf只配置了具体域名的访问请求权限 我将authHost改为vhosts-le-ssl.conf下的具体域名就可以成功访问

2年前 评论
讨论数量: 3
  • 比如我私有频道路由如下

    Broadcast::channel('payment.{userId}', function ($user, $userId) {
      return (int) $user->id === (int) $userId;
    });
  • 在没登录的时候会提示 403 错误
    file

  • 这时候只要用户登录,就不会提示错误了

  • 前端请求的时候记得带上用户 id
    html 页面:

    <meta name="auth-id" content="{{ \Illuminate\Support\Facades\Auth::id() }}">

    js 获取用户id

    window.wbskt = {
      channels: [],
      userId: $('meta[name="auth-id"]').attr('content'),
      echo: function echo(channelName, succeededCallback, failedCallback) {
          Echo["private"](channelName + '.' + wbskt.userId).
          listen('.' + channelName + '.succeeded', function (e) {
              succeededCallback(e);
          }).listen('.' + channelName + '.failed', function (e) {
              failedCallback(e);
          });
      },
      startListen: function startListen() {
          wbskt.channels.forEach(function (channel, i) {
              wbskt.echo(channel.name,channel.succeededCallback,channel.failedCallback)
          });
      }
    };
2年前 评论
oursdreams (楼主) 2年前
喝卵形 (作者) 2年前
oursdreams (楼主) 2年前

这些没问题的,问题出在访问 /broadcasting/auth授权认证路由时,这里有句话是You don't have permission to access /broadcasting/auth mon this server 我不清楚是不是某些配置,甚至于apache的访问限制影响了我对于此授权地址的访问 值得一提的是我本地是同样的文件环境我本地是可以授权成功的,唯一区别是线上是HTTPS协议

2年前 评论

问题解决: 检查apache访问日志发现授权访问一直被拒绝再次检查配置 问题原因:laravel-echo-server.json里的authHost配置为localhost 在HTTPS协议下APACHE配置vhosts-le-ssl.conf只配置了具体域名的访问请求权限 我将authHost改为vhosts-le-ssl.conf下的具体域名就可以成功访问

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!