Spaces:
Paused
Paused
| export type DeviceAuthPayloadParams = { | |
| deviceId: string; | |
| clientId: string; | |
| clientMode: string; | |
| role: string; | |
| scopes: string[]; | |
| signedAtMs: number; | |
| token?: string | null; | |
| nonce?: string | null; | |
| version?: "v1" | "v2"; | |
| }; | |
| export function buildDeviceAuthPayload(params: DeviceAuthPayloadParams): string { | |
| const version = params.version ?? (params.nonce ? "v2" : "v1"); | |
| const scopes = params.scopes.join(","); | |
| const token = params.token ?? ""; | |
| const base = [ | |
| version, | |
| params.deviceId, | |
| params.clientId, | |
| params.clientMode, | |
| params.role, | |
| scopes, | |
| String(params.signedAtMs), | |
| token, | |
| ]; | |
| if (version === "v2") { | |
| base.push(params.nonce ?? ""); | |
| } | |
| return base.join("|"); | |
| } | |