当前位置: 首页 > 知识库问答 >
问题:

订阅私人应用程序所需的身份验证信息。使用者未使用Laravel、Vue和Pusher定义

太叔鹏云
2023-03-14

这是我的主要代码。收听广播

let userId=document.head.querySelector('meta[name="user-id"').content;
console.log(userId)
window.Echo.private('App.User.' + userId)
    .notification((notification) => {
        console.log(notification.type);
    });

这是我的引导代码。js

import Echo from 'laravel-echo';

window.Pusher = require('pusher-js');

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    forceTLS: true,
 });

这是我的欢迎元标签。刀身php

<meta name="csrf-token" content="{{ csrf_token() }}">
<meta name="user-id" content="{{Auth::check() ? Auth::user()->id:''}}">

这是我的频道。php文件代码

Broadcast::channel('App.User.{id}', function ($user, $id) {
    return (int) $user->id === (int) $id;
},['guards'=>['api']]);

最后是来自BroadcastServiceProvider的引导函数。php

public function boot()
    {
        Broadcast::routes(['middleware' => ['auth:api']]);

        require base_path('routes/channels.php');
    }

任何帮助将高度赞赏。提前感谢。

共有2个答案

姚自强
2023-03-14

我也在努力解决同样的问题。根据我所读到的,如果你使用api,你需要在你的bootstrap.js文件中的echo实例中添加身份验证头,如下所示:

window.Echo = new Echo({
    broadcaster: 'pusher',
    key: process.env.MIX_PUSHER_APP_KEY,
    cluster: process.env.MIX_PUSHER_APP_CLUSTER,
    forceTLS: true,
    auth:{
        headers: {
            Accept: 'application/json',
            Authorization: 'Bearer ',
        },
    },

 });

试试这个。

祝宾白
2023-03-14

我也有同样的问题,但是使用Djago和Javascript。我的建议是:

  • 确保Pusher用于私人频道身份验证的URL正常工作
 类似资料:
  • 我正在尝试配置laravel的auth以适合我的db。但无论我做什么,都会覆盖像或在LoginController中,它忽略所有内容。有人知道如何用不同的数据库参数化laravel的身份吗? 以下是我在LoginController中更改的内容: 在用户模型中: 编辑:config/auth.php: ]; LoginController: 名称空间App\Http\Controllers\Aut

  • 我目前有一个使用Azure移动应用程序的后端解决方案。我已经启用了facebook、twitter、google和Microsoft登录。除此之外,我正在尝试添加一个自定义登录流。我已经设置了一个Auth0帐户和应用程序,当我在应用程序中使用auth0 lock小部件发出请求时,我能够从auth0获得令牌和配置文件。 我遵循了本指南:https://shellmonger.com/2016/04/

  • 我已经将我的项目从Firebase sdk版本5.4.4升级到了unity版本2018.4.14F1中的Firebase sdk版本6.8.0。我已将所有必需的“DotNet3”unity包导入到我的项目中,并进行了构建,但出现错误:“此应用程序未被授权使用Firebase身份验证。请验证Firebase控制台中配置了正确的包名称和SHA-1。[应用程序验证失败]”。然后,我再次为我的密钥库生成了

  • 问题内容: 我想在我的Java应用程序中使用Windows NTLM认证来透明地认证Intranet用户。如果使用浏览器(单点登录),用户将不会注意到任何身份验证。 我发现了一些具有NTLM支持的库,但是不知道要使用哪个库: http://spnego.sourceforge.net/ http://sourceforge.net/projects/ntlmv2auth/ http://jcifs

  • 我试图在一个反应式Spring Boot应用程序中配置一个Spring Security性,该应用程序具有一个Vuejs前端,在未经身份验证时将用户重定向到外部OpenID提供程序(用于身份验证)。在用户通过OpenID提供程序进行身份验证并重定向回应用程序(前端)后,将根据OpenID提供程序的响应创建用户名密码身份验证令牌(身份验证),并手动进行身份验证。 但是,在执行此操作时,应用程序似乎无

  • JSch日志: 的日志: