Skip to content

Releases: clerk/javascript

@clerk/[email protected]

27 Feb 19:36
f2e31af

Choose a tag to compare

Patch Changes

@clerk/[email protected]

27 Feb 19:37
f2e31af

Choose a tag to compare

Patch Changes

@clerk/[email protected]

27 Feb 19:36
f2e31af

Choose a tag to compare

Minor Changes

  • Added support for JWT token format when creating and verifying machine-to-machine (M2M) tokens. This enables fully networkless verification when using the public JWT key. (#7883) by @wobsoriano

    Creating a JWT-format M2M token

    const clerkClient = createClerkClient({
      machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY,
    });
    
    const m2mToken = await clerkClient.m2m.createToken({
      tokenFormat: 'jwt',
    });
    
    console.log('M2M token created:', m2mToken.token);

    Verifying a token

    const clerkClient = createClerkClient({
      machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY,
    });
    
    const authHeader = req.headers.get('Authorization');
    const token = authHeader.slice(7);
    
    const verified = await clerkClient.m2m.verify(token);
    
    console.log('Verified M2M token:', verified);

    Networkless verification

    const clerkClient = createClerkClient({
      jwtKey: process.env.CLERK_JWT_KEY,
    });
    
    const authHeader = req.headers.get('Authorization');
    const token = authHeader.slice(7);
    
    const verified = await clerkClient.m2m.verify(token);
    
    console.log('Verified M2M token:', verified);
  • Add list() method to M2M tokens API to retrieve a list of machine-to-machine tokens for a given machine. (#7939) by @wobsoriano

    // Retrieve M2M tokens for a specific machine
    const response = await clerkClient.m2m.list({
      subject: 'mch_1xxxxxxxxxxxxx',
    });
    
    console.log(response.data); // M2MToken[]
    console.log(response.totalCount); // number

    Filter by revoked or expired tokens:

    const revokedTokens = await clerkClient.m2m.list({
      subject: 'mch_1xxxxxxxxxxxxx',
      revoked: true,
    });
    
    const expiredTokens = await clerkClient.m2m.list({
      subject: 'mch_1xxxxxxxxxxxxx',
      expired: true,
    });

Patch Changes

@clerk/[email protected]

27 Feb 19:36
f2e31af

Choose a tag to compare

Patch Changes

@clerk/[email protected]

27 Feb 19:36
f2e31af

Choose a tag to compare

Patch Changes

@clerk/[email protected]

26 Feb 17:49
8a478ea

Choose a tag to compare

Patch Changes

@clerk/[email protected]

26 Feb 17:49
8a478ea

Choose a tag to compare

Patch Changes

@clerk/[email protected]

26 Feb 17:50
8a478ea

Choose a tag to compare

Patch Changes

@clerk/[email protected]

26 Feb 17:49
8a478ea

Choose a tag to compare

Patch Changes

@clerk/[email protected]

26 Feb 17:50
8a478ea

Choose a tag to compare

Patch Changes