feat(GBMinService): add endpoint for generating meeting tokens with LiveKit
All checks were successful
GBCI / build (push) Successful in 1m29s
All checks were successful
GBCI / build (push) Successful in 1m29s
This commit is contained in:
parent
30460100d9
commit
7175ab550b
1 changed files with 46 additions and 0 deletions
|
|
@ -567,6 +567,52 @@ export class GBMinService {
|
||||||
})
|
})
|
||||||
.bind(min);
|
.bind(min);
|
||||||
|
|
||||||
|
GBServer.globals.server
|
||||||
|
.all('/${min.instance.botId}/meeting-token', async (req, res) => {
|
||||||
|
try {
|
||||||
|
// 1. Validate request
|
||||||
|
const { room, identity, name } = req.query;
|
||||||
|
if (!room || !identity) {
|
||||||
|
return res.status(400).json({ error: 'Missing required parameters: room, identity' });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 2. Get API keys from config (replace with your actual config access)
|
||||||
|
const apiKey = process.env.LIVEKIT_API_KEY;
|
||||||
|
const apiSecret = process.env.LIVEKIT_API_SECRET;
|
||||||
|
if (!apiKey || !apiSecret) {
|
||||||
|
return res.status(500).json({ error: 'Server misconfigured' });
|
||||||
|
}
|
||||||
|
|
||||||
|
// 3. Generate token
|
||||||
|
const { AccessToken } = require('livekit-server-sdk');
|
||||||
|
const token = new AccessToken(apiKey, apiSecret, {
|
||||||
|
identity: identity.toString(),
|
||||||
|
name: name?.toString() || identity.toString()
|
||||||
|
});
|
||||||
|
|
||||||
|
// 4. Set permissions
|
||||||
|
token.addGrant({
|
||||||
|
roomJoin: true,
|
||||||
|
room: room.toString(),
|
||||||
|
canPublish: true,
|
||||||
|
canSubscribe: true,
|
||||||
|
canPublishData: true
|
||||||
|
});
|
||||||
|
|
||||||
|
// 5. Set expiration (24 hours default)
|
||||||
|
token.setTtl(24 * 60 * 60); // 6 hours in seconds
|
||||||
|
|
||||||
|
// 6. Return JWT
|
||||||
|
const jwt = token.toJwt();
|
||||||
|
res.json({ token: jwt });
|
||||||
|
|
||||||
|
} catch (err) {
|
||||||
|
GBLog.error(`Meeting token generation failed: ${err}`);
|
||||||
|
res.status(500).json({ error: 'Token generation failed' });
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
GBDeployer.mountGBKBAssets(`${botId}.gbkb`, botId, `${botId}.gbkb`);
|
GBDeployer.mountGBKBAssets(`${botId}.gbkb`, botId, `${botId}.gbkb`);
|
||||||
|
|
||||||
return min;
|
return min;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue