尝试认证用户时,Angular Laravel Pusher 419状态未知

问题描述

我正在尝试使用Angular,Laravel和Pusher实现聊天。 聊天正在进行中,但现在我想对用户进行身份验证,以指示用户是否在线。 我知道要执行此操作,我需要设置私人房间而不是公共房间,当我尝试为用户进行身份验证时,我会获得419个未知状态。

角度代码

import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';

import { UserSessionService } from 'app/shared/_services/user-session.service';

import { ChatMessage } from 'app/shared/_models/chat-message.model';
import { environment } from 'environments/environment';

declare const Pusher: any;

@Injectable()
export class broadcastService {

  readonly pusherKey = environment.pusherKey;

  private channels = {};

  newChatMessage = new Subject<ChatMessage>();
  activeChanel = new Subject<any>();

  constructor(private userSession: UserSessionService) {}

  openChatSocket(chatId: number): void {
    if (this.channels[chatId]) {
      return;
    }

    const pusher = new Pusher(this.pusherKey,{
      cluster: 'eu',encrypted: true,authEndpoint: environment.apiUrl + '/broadcasting/auth',auth: {
        headers: {
          'Authorization': this.userSession.getToken()
        }
      }
    });

    this.channels[chatId] = pusher.subscribe('private-chat-' + chatId);
    this.activeChanel.next(this.channels[chatId])
    this.channels[chatId].bind('new-message',fullMessageInfo => {
      this.newChatMessage.next(fullMessageInfo.message);
    });
  }

  closeChatSockets(): void {
    Object.keys(this.channels).forEach(channel => {
      this.channels[channel].unsubscribe();
    });

    this.channels = {};
  }
}

我已经尝试在VerifyCsrftoken.PHP中排除http:// localhost:4200,但是它不起作用。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...