Add server ID to Intercom JWT payload (#5769)

This commit is contained in:
aecsocket
2026-04-07 23:14:15 +01:00
committed by GitHub
parent e71a8c10fa
commit de4f0bffb0
2 changed files with 12 additions and 2 deletions
@@ -21,6 +21,7 @@ async function getIntercomKeyFromSecretsStore(): Promise<string | undefined> {
async function signIntercomUserJwt(
user: { id: string; username: string; email?: string; created: string },
secret: string,
serverId?: string,
): Promise<string> {
const createdAt = Math.floor(new Date(user.created).getTime() / 1000)
@@ -37,6 +38,10 @@ async function signIntercomUserJwt(
payload.created_at = createdAt
}
if (serverId) {
payload.server_id = serverId
}
return await new SignJWT(payload)
.setProtectedHeader({ alg: 'HS256', typ: 'JWT' })
.setIssuedAt()
@@ -104,7 +109,10 @@ export default defineEventHandler(async (event): Promise<IntercomTokenResponse>
})
}
const token = await signIntercomUserJwt(user, intercomSecret)
const query = getQuery(event)
const serverId = typeof query.server_id === 'string' ? query.server_id : undefined
const token = await signIntercomUserJwt(user, intercomSecret, serverId)
return {
token,