Skip to content

Commit 5b0e5fb

Browse files
committed
Push
1 parent 5d21315 commit 5b0e5fb

File tree

6 files changed

+1088
-49
lines changed

6 files changed

+1088
-49
lines changed

auth.js

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
const express = require("express");
2+
const c = require("@liveblocks/node");
3+
const cors = require("cors");
4+
const { v4: uuidv4 } = require("uuid");
5+
6+
const liveblocks = new c.Liveblocks({
7+
secret: "sk_dev_4oLJSBeKQJF8n3tCiEnqkC8f9mMM2gBhlIMIVZImq98FqiTNa_-SIsps6EMaQuG0",
8+
});
9+
10+
const port = 8080;
11+
12+
const app = express();
13+
14+
// app.use((req, res, next) => {
15+
// res.header("Access-Control-Allow-Origin", "*");
16+
// res.header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
17+
// res.header("Access-Control-Allow-Headers", "Content-Type, Referer, Authorization");
18+
// next();
19+
// });
20+
app.use(cors({
21+
origin: '*',
22+
methods: ['GET', 'POST', 'PUT', 'DELETE', 'OPTIONS'],
23+
allowedHeaders: ['Content-Type', 'Authorization'],
24+
}));
25+
26+
app.use(express.json());
27+
28+
app.post("/api/liveblocks-auth", async (req, res) => {
29+
const name = req.query.name;
30+
const { roomId } = req.body;
31+
const userId = uuidv4();
32+
33+
const user = {
34+
id: userId + name,
35+
name: name,
36+
avatar: "https://example.com/marc.png",
37+
color: "purple",
38+
organization: "asrez",
39+
group: "devs",
40+
};
41+
42+
console.log(req);
43+
console.log(user);
44+
console.log(roomId);
45+
46+
// const room = await liveblocks.createRoom("a32wQXid4A9", {
47+
// defaultAccesses: ["room:write"],
48+
// });
49+
50+
const session = liveblocks.prepareSession(
51+
user.id,
52+
{ userInfo: user.metadata },
53+
);
54+
55+
session.allow(`${user.organization}:*`, session.READ_ACCESS);
56+
session.allow(`${user.organization}:${user.group}:*`, session.FULL_ACCESS);
57+
58+
const { status, body } = await session.authorize();
59+
return res.status(status).end(body);
60+
});
61+
62+
app.listen(port, () => {
63+
console.log(`Server running at http://localhost:${port}`);
64+
});

auth.php

Lines changed: 0 additions & 41 deletions
This file was deleted.

index.html

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +1,39 @@
11
<!DOCTYPE html>
22
<html lang="en">
3+
34
<head>
45
<meta charset="UTF-8">
56
<meta name="viewport" content="width=device-width, initial-scale=1.0">
67
<title>Liveblocks Auth</title>
78
</head>
9+
810
<body>
911
<div>
1012
<p id="status">Not connected</p>
11-
<button id="connect">Connect to Room</button>
13+
<form onsubmit="return false;">
14+
<input id="name" value="Max" required="" placeholder="Name">
15+
<input id="room" value="asrez:devs:general" required="" placeholder="Room">
16+
<button id="connect">Connect to Room</button>
17+
</form>
1218
</div>
1319

14-
<!-- Import the room.js file -->
1520
<script type="module">
1621
import { client } from './room.js';
1722

18-
document.getElementById('connect').addEventListener('click', () => {
19-
const { room, leave } = client.enterRoom("my-room");
23+
const elm_button = document.getElementById('connect');
24+
const elm_name = document.querySelector("#name");
25+
const elm_room = document.querySelector("#room");
26+
27+
elm_button.addEventListener('click', () => {
28+
localStorage.setItem("name", elm_name.value);
29+
30+
const { room, leave } = client.enterRoom(elm_room.value);
2031

2132
room.subscribe("others", (others) => {
2233
document.getElementById('status').innerText = `There are ${others.length} other user(s) online`;
2334
});
2435
});
2536
</script>
2637
</body>
27-
</html>
38+
39+
</html>

0 commit comments

Comments
 (0)