File tree 2 files changed +22
-1
lines changed
2 files changed +22
-1
lines changed Original file line number Diff line number Diff line change 1
1
import { Server as SocketIO } from "socket.io" ;
2
2
import { Server } from "http" ;
3
+ import { verify } from "jsonwebtoken" ;
3
4
import AppError from "../errors/AppError" ;
4
5
import { logger } from "../utils/logger" ;
6
+ import authConfig from "../config/auth" ;
5
7
6
8
let io : SocketIO ;
7
9
@@ -13,6 +15,17 @@ export const initIO = (httpServer: Server): SocketIO => {
13
15
} ) ;
14
16
15
17
io . on ( "connection" , socket => {
18
+ const { token } = socket . handshake . query ;
19
+ let tokenData = null ;
20
+ try {
21
+ tokenData = verify ( token , authConfig . secret ) ;
22
+ logger . debug ( JSON . stringify ( tokenData ) , "io-onConnection: tokenData" ) ;
23
+ } catch ( error ) {
24
+ logger . error ( JSON . stringify ( error ) , "Error decoding token" ) ;
25
+ socket . disconnect ( ) ;
26
+ return io ;
27
+ }
28
+
16
29
logger . info ( "Client Connected" ) ;
17
30
socket . on ( "joinChatBox" , ( ticketId : string ) => {
18
31
logger . info ( "A client joined a ticket channel" ) ;
@@ -32,6 +45,8 @@ export const initIO = (httpServer: Server): SocketIO => {
32
45
socket . on ( "disconnect" , ( ) => {
33
46
logger . info ( "Client disconnected" ) ;
34
47
} ) ;
48
+
49
+ return socket ;
35
50
} ) ;
36
51
return io ;
37
52
} ;
Original file line number Diff line number Diff line change @@ -2,7 +2,13 @@ import openSocket from "socket.io-client";
2
2
import { getBackendUrl } from "../config" ;
3
3
4
4
function connectToSocket ( ) {
5
- return openSocket ( getBackendUrl ( ) ) ;
5
+ const token = localStorage . getItem ( "token" ) ;
6
+ return openSocket ( getBackendUrl ( ) , {
7
+ transports : [ "websocket" , "polling" , "flashsocket" ] ,
8
+ query : {
9
+ token : JSON . parse ( token ) ,
10
+ } ,
11
+ } ) ;
6
12
}
7
13
8
14
export default connectToSocket ;
You can’t perform that action at this time.
0 commit comments