Skip to content

Commit c12c5f4

Browse files
committed
📝 write API [skip ci]
1 parent 76d2196 commit c12c5f4

File tree

2 files changed

+70
-7
lines changed

2 files changed

+70
-7
lines changed

README.md

+61-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Socket.io Middleware firebase-admin
1010
</a>
1111
</p>
1212

13-
a minimal BDD interface / reporter for [ESM Modules](https://nodejs.org/api/esm.html#esm_enabling)
13+
a socket.io middleware [firebaseAdmin.verifySessionCookie](https://firebase.google.com/docs/auth/admin/manage-cookies)
1414

1515
Installation
1616
---
@@ -20,7 +20,66 @@ yarn add socket.io-middleware-firebase-admin
2020

2121
API
2222
---
23-
TODO
23+
24+
## createIoMiddlewareFirebaseAdmin({ credential }, (options = {})): middleware
25+
26+
[initialize "Firebase Admin SDK" using `credential`](https://firebase.google.com/docs/admin/setup)
27+
28+
```js
29+
import { createServer } from "http";
30+
import createIoServer from "socket.io";
31+
import createIoClient from "socket.io-client";
32+
33+
import createIoMiddlewareFirebaseAdmin from "socket.io-middleware-firebase-admin";
34+
import credential from "./.credential";
35+
36+
const server = createServer();
37+
const io = createIoServer(server);
38+
const ioMiddleware = createIoMiddlewareFirebaseAdmin({ credential });
39+
40+
io.use(ioMiddleware);
41+
42+
server.listen(() => {
43+
const { port } = server.address();
44+
const client = createIoClient(`http://localhost:${port}`, {
45+
extraHeaders: {
46+
Cookie: "session=" //+await firebaseAdmin.auth().createSessionCookie(idToken)
47+
}
48+
});
49+
client.on("connect", error => {
50+
const decodedClaims = ioMiddleware.getCache(client.id);
51+
console.log(decodedClaims);
52+
});
53+
});
54+
```
55+
56+
### `options`
57+
58+
* `options.deny`= true: boolean
59+
Deny connections of users who couldn't authenticate.
60+
61+
* `options.cache`= true: boolean
62+
Cache claim of authenticated user.
63+
64+
## ioMiddleware.getCache(clientId): decodedClaims
65+
66+
Returns the claim of the authenticated user.
67+
68+
```js
69+
console.log(ioMiddleware.getCache(client.id));
70+
// { iss:
71+
// 'https://session.firebase.google.com/socketio-middleware-demo1',
72+
// aud: 'socketio-middleware-demo1',
73+
// auth_time: 1534417139,
74+
// user_id: 'CUCPCuD50xgKeEfVggJ1fYQYNOj1',
75+
// sub: 'CUCPCuD50xgKeEfVggJ1fYQYNOj1',
76+
// iat: 1534417140,
77+
// exp: 1534417440,
78+
// email: 'i59naga@icloud.com',
79+
// email_verified: false,
80+
// firebase:
81+
// { identities: { email: [Array] }, sign_in_provider: 'custom' }
82+
```
2483

2584
License
2685
---

package.json

+9-5
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
{
22
"name": "socket.io-middleware-firebase-admin",
33
"version": "0.0.0",
4-
"description": "",
4+
"description": "a socket.io middleware firebaseAdmin.verifySessionCookie",
55
"scripts": {
66
"start": "abby format, test --watch \"*.mjs\"",
77
"test": "node --experimental-modules test.mjs",
88
"format": "prettier \"*.mjs\" --write",
99
"build": "babel index.mjs --out-file index.js",
1010
"postversion": "git push --follow-tags && conventional-github-releaser -p atom"
1111
},
12+
"dependencies": {
13+
"cookie": "^0.3.1",
14+
"firebase-admin": "^6.0.0"
15+
},
1216
"devDependencies": {
1317
"@babel/cli": "^7.0.0-rc.1",
1418
"@babel/core": "^7.0.0-rc.1",
@@ -24,10 +28,10 @@
2428
"socket.io": "^2.1.1",
2529
"socket.io-client": "^2.1.1"
2630
},
27-
"dependencies": {
28-
"cookie": "^0.3.1",
29-
"firebase-admin": "^6.0.0"
30-
},
31+
"keywords": [
32+
"socket.io-middleware",
33+
"firebase-admin"
34+
],
3135
"repository": {
3236
"type": "git",
3337
"url": "git+https://github.com/59naga/socket.io-middleware-firebase-admin.git"

0 commit comments

Comments
 (0)