Я пытаюсь разрешить моим угловым клиентам проходить аутентификацию в моем бэкэнде nestjs, чтобы разрешить открытие веб-сокетов только авторизованным пользователям.
Я следовал этому руководству для настройки моих угловых клиентов +Серверный сервер nestjs websocket: https://www.joshmorony.com/creating-a-simple-live-chat-server-with-nestjs-websockets/
Он показывает, что существует объект с именем SocketIoConfig, который принимает URL-адрес и параметры для открытия соединения через веб-сокет с серверной частью nestjs.Насколько я понимаю, чтобы открыть веб-сокет, браузер сначала отправляет http-запрос, а затем получает ответ «upgrade to ws», если запрос был успешным.Я хотел бы присоединить заголовок авторизации к этому начальному HTTP-запросу, добавив заголовки к объекту параметров в объекте SocketIoConfig.
В клиентском app.module.ts у меня есть это, чтобы открыть соединение:
const config: SocketIoConfig = { url: 'http://localhost:3333', options: { }};
@NgModule({
declarations: [AppComponent, ChatComponent],
imports: [BrowserModule, HttpClientModule,
SocketIoModule.forRoot(config)],
providers: [ ChatService ],
bootstrap: [AppComponent]
})
export class AppModule {}
То, что я ожидал бы, это то, что я мог бы добавить объект заголовков в объекте параметров и добавить к нему заголовок Authorization, например так:
const config: SocketIoConfig = { url: 'http://localhost:3333', options: {
headers: {
Authorization: Bearer A8V342CsArf2
}
}
};
Однако, когда я открываю вкладку сети Chrome припри установлении соединения я не вижу заголовка авторизации в заголовках запроса.Почему этот заголовок не прикреплен к открытому запросу на соединение?