Preparing pseudonym member.id

This commit is contained in:
fkwp
2025-12-05 11:43:58 +01:00
parent 42ac77686b
commit 091c04f7d6
+13 -2
View File
@@ -69,13 +69,23 @@ async function getLiveKitJWT(
openIDToken: IOpenIDToken, openIDToken: IOpenIDToken,
delayId: string, delayId: string,
): Promise<SFUConfig> { ): Promise<SFUConfig> {
try { // TODO: rawId is missing a random component
// Note This random component needs to be stored/present during the lifetime this MatrixRTC client
let rawId = (client.getUserId() ?? "") + client.getDeviceId()
const utf8 = new TextEncoder().encode(rawId);
let idHashed = await crypto.subtle.digest('SHA-256', utf8).then((hashBuffer) => {
const hashArray = Array.from(new Uint8Array(hashBuffer));
const hashHex = hashArray.map(bytes => bytes.toString(16).padStart(2, '0')).join('');
return hashHex;
});
let body = { let body = {
room_id: roomName, room_id: roomName,
slot_id: "m.call#ROOM", slot_id: "m.call#ROOM",
openid_token: openIDToken, openid_token: openIDToken,
member: { member: {
id: (client.getUserId() ?? "") + client.getDeviceId(), id: idHashed,
claimed_user_id: client.getUserId(), claimed_user_id: client.getUserId(),
claimed_device_id: client.getDeviceId(), claimed_device_id: client.getDeviceId(),
} }
@@ -86,6 +96,7 @@ async function getLiveKitJWT(
...{delay_id: delayId, delay_timeout: 10000, delay_cs_api_url: client.baseUrl} ...{delay_id: delayId, delay_timeout: 10000, delay_cs_api_url: client.baseUrl}
} }
}; };
try {
const res = await fetch(livekitServiceURL + "/get_token", { const res = await fetch(livekitServiceURL + "/get_token", {
method: "POST", method: "POST",
headers: { headers: {