0

Create a TOTP for a user

by
Published Apr 8, 2025

Creates a TOTP (Time-based One-Time Password) for a given user, returning both the TOTP secret and the URI.

Script clerk Verified

The script

Submitted by hugo697 Bun
Verified 428 days ago
1
//native
2
type Clerk = {
3
  apiKey: string;
4
};
5
/**
6
 * Create a TOTP for a user
7
 * Creates a TOTP (Time-based One-Time Password) for a given user, returning both the TOTP secret and the URI.
8

9
 */
10
export async function main(auth: Clerk, user_id: string) {
11
  const url = new URL(`https://api.clerk.com/v1/users/${user_id}/totp`);
12

13
  const response = await fetch(url, {
14
    method: "POST",
15
    headers: {
16
      Authorization: "Bearer " + auth.apiKey,
17
    },
18
    body: undefined,
19
  });
20
  if (!response.ok) {
21
    const text = await response.text();
22
    throw new Error(`${response.status} ${text}`);
23
  }
24
  return await response.json();
25
}
26