Skip to content

Commit 2b32b74

Browse files
committed
‼️ change session passing from cookie to query
BREAKING CHANGE: socket.io-client\s `extraHeaders` option **works only on nodejs** socketio/socket.io-client#1159
1 parent a4d12e6 commit 2b32b74

File tree

6 files changed

+15
-22
lines changed

6 files changed

+15
-22
lines changed

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@ io.use(ioMiddleware);
4343
server.listen(() => {
4444
const { port } = server.address();
4545
const client = createIoClient(`http://localhost:${port}`, {
46-
extraHeaders: {
47-
Cookie: "session=" //+await firebaseAdmin.auth().createSessionCookie(idToken)
46+
query: {
47+
session: ""//await firebaseAdmin.auth().createSessionCookie(idToken)
4848
}
4949
});
5050
client.on("connect", error => {

index.mjs

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,10 @@
1-
import cookie from "cookie";
2-
31
export default (app, options = {}) => {
42
const auth = app.auth();
53
const opts = Object.assign({ deny: true, cache: true }, options);
64

75
const cache = {};
86
const middleware = async (client, next) => {
9-
const { session = "" } = cookie.parse(
10-
client.handshake.headers.cookie || ""
11-
);
7+
const { session = "" } = client.handshake.query;
128
if (!session && !opts.deny) {
139
return next();
1410
}

package.json

+5-4
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,18 @@
22
"name": "socket.io-middleware-firebase-admin",
33
"version": "0.0.1",
44
"description": "a socket.io middleware firebaseAdmin.verifySessionCookie",
5-
"files": ["index.js", "index.mjs"],
5+
"files": [
6+
"index.js",
7+
"index.mjs"
8+
],
69
"scripts": {
710
"start": "abby format, test --watch \"*.mjs\"",
811
"test": "node --experimental-modules test.mjs",
912
"format": "prettier \"*.mjs\" --write",
1013
"build": "babel index.mjs --out-file index.js",
1114
"postversion": "git push --follow-tags && conventional-github-releaser -p atom"
1215
},
13-
"dependencies": {
14-
"cookie": "^0.3.1"
15-
},
16+
"dependencies": {},
1617
"devDependencies": {
1718
"@babel/cli": "^7.0.0-rc.1",
1819
"@babel/core": "^7.0.0-rc.1",

test-helpers.mjs

+2-6
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,9 @@ export const createIoServerAsync = ioMiddleware => {
4545
});
4646
};
4747

48-
export const createIoClientAsync = (port, cookie) => {
48+
export const createIoClientAsync = (port, query) => {
4949
return new Promise((resolve, reject) => {
50-
const client = createIoClient(`http://localhost:${port}`, {
51-
extraHeaders: {
52-
Cookie: cookie
53-
}
54-
});
50+
const client = createIoClient(`http://localhost:${port}`, { query });
5551
client.on("connect", () => {
5652
resolve(client);
5753
});

test.mjs

+2-2
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ spec.after(async () => {
2727
});
2828

2929
spec("should deny unauthorized user using deny mode(default)", async () => {
30-
const error = await rejects(createIoClientAsync(port, "session="));
30+
const error = await rejects(createIoClientAsync(port));
3131
const expectMessage = "Decoding Firebase session cookie failed";
3232
strictEqual(error.message.slice(0, expectMessage.length), expectMessage);
3333
});
@@ -45,7 +45,7 @@ spec(
4545
});
4646
});
4747

48-
const client = await createIoClientAsync(port, `session=${session}`);
48+
const client = await createIoClientAsync(port, { session });
4949
await new Promise(async resolve => {
5050
client.emit("claims", claims => {
5151
strictEqual(claims.email, "i59naga@icloud.com");

yarn.lock

+3-3
Original file line numberDiff line numberDiff line change
@@ -904,7 +904,7 @@ convert-source-map@^1.1.0:
904904
version "1.5.1"
905905
resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5"
906906

907-
cookie@0.3.1, cookie@^0.3.1:
907+
cookie@0.3.1:
908908
version "0.3.1"
909909
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb"
910910

@@ -1043,8 +1043,8 @@ eastasianwidth@^0.2.0:
10431043
resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb"
10441044

10451045
eastern@^0.1.0:
1046-
version "0.1.0"
1047-
resolved "https://registry.yarnpkg.com/eastern/-/eastern-0.1.0.tgz#5018052e0333f5c351499ef42589fb999a558359"
1046+
version "0.1.1"
1047+
resolved "https://registry.yarnpkg.com/eastern/-/eastern-0.1.1.tgz#5d3f87714a139eda0588edcbd897903ded92eaa8"
10481048
dependencies:
10491049
chalk "^2.4.1"
10501050
exit-hook "^2.0.0"

0 commit comments

Comments
 (0)