Share token link generation

This commit is contained in:
Max Goodhart
2025-06-15 03:56:10 +00:00
parent d8fe12ceb9
commit a0083ae093
3 changed files with 23 additions and 2 deletions

View File

@@ -11,6 +11,7 @@ import {
type AuthTokenInfo, type AuthTokenInfo,
type ControlCommandMessage, type ControlCommandMessage,
type ControlUpdateMessage, type ControlUpdateMessage,
inviteLink,
roleCan, roleCan,
stateDiff, stateDiff,
type StreamwallRole, type StreamwallRole,
@@ -456,7 +457,11 @@ async function initialInviteCodes({
) )
console.log( console.log(
'🔑 Admin invite:', '🔑 Admin invite:',
`${baseURL}/invite/${adminToken.tokenId}?token=${adminToken.secret}`, inviteLink({
baseURL,
tokenId: adminToken.tokenId,
secret: adminToken.secret,
}),
) )
} }

View File

@@ -25,6 +25,7 @@ import {
ControlCommand, ControlCommand,
idColor, idColor,
idxInBox, idxInBox,
inviteLink,
LocalStreamData, LocalStreamData,
roleCan, roleCan,
StreamData, StreamData,
@@ -804,7 +805,10 @@ export function ControlUI({
<StyledNewInviteBox> <StyledNewInviteBox>
Invite link created:{' '} Invite link created:{' '}
<a <a
href={`/invite/${newInvite.tokenId}?token=${newInvite.secret}`} href={inviteLink({
tokenId: newInvite.tokenId,
secret: newInvite.secret,
})}
onClick={preventLinkClick} onClick={preventLinkClick}
> >
"{newInvite.name}" "{newInvite.name}"

View File

@@ -47,3 +47,15 @@ export function roleCan(role: StreamwallRole | null, action: StreamwallAction) {
return false return false
} }
export function inviteLink({
baseURL = '',
tokenId,
secret,
}: {
baseURL?: string
tokenId: string
secret: string
}) {
return `${baseURL}/invite/${tokenId}?token=${secret}`
}