Skip to content

Commit 61b1056

Browse files
authored
fix: Add fallback for legacy socket authenticate event (#1356)
1 parent 85afcca commit 61b1056

File tree

2 files changed

+33
-0
lines changed

2 files changed

+33
-0
lines changed

packages/transport-commons/src/socket/index.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,13 @@ export function socket ({ done, emit, socketKey, getParams }: SocketOptions) {
4343
runMethod(app, getParams(connection), path, method, args);
4444
});
4545
}
46+
47+
connection.on('authenticate', (...args: any[]) => {
48+
if (app.get('defaultAuthentication')) {
49+
debug('Got legacy authenticate event');
50+
runMethod(app, getParams(connection), app.get('defaultAuthentication'), 'create', args);
51+
}
52+
});
4653
}));
4754

4855
// Legacy `socket.emit('serviceName::methodName', ...args)` handlers

packages/transport-commons/test/socket/index.test.ts

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,32 @@ describe('@feathersjs/transport-commons', () => {
113113
});
114114

115115
describe('legacy method socket event format', () => {
116+
it('legacy `authenticate`', done => {
117+
const socket = new EventEmitter();
118+
const data = {
119+
test: 'data'
120+
};
121+
122+
app.set('defaultAuthentication', 'myservice');
123+
provider.emit('connection', socket);
124+
125+
socket.emit('authenticate', data, (error: any, result: any) => {
126+
try {
127+
const params = Object.assign({
128+
query: {},
129+
route: {},
130+
connection
131+
}, connection);
132+
133+
assert.ok(!error);
134+
assert.deepStrictEqual(result, Object.assign({ params }, data));
135+
done();
136+
} catch (e) {
137+
done(e);
138+
}
139+
});
140+
});
141+
116142
it('.get without params', done => {
117143
const socket = new EventEmitter();
118144

0 commit comments

Comments
 (0)