@@ -33,26 +33,26 @@ test.describe('machine-to-machine auth @machine', () => {
33
33
'src/server/main.ts' ,
34
34
( ) => `
35
35
import 'dotenv/config';
36
- import { clerkMiddleware, getAuth } from '@clerk/express';
36
+ import { clerkClient } from '@clerk/express';
37
37
import express from 'express';
38
38
import ViteExpress from 'vite-express';
39
39
40
40
const app = express();
41
41
42
- app.use(
43
- clerkMiddleware({
44
- publishableKey: process.env.VITE_CLERK_PUBLISHABLE_KEY,
45
- machineSecretKey: process.env.CLERK_MACHINE_SECRET_KEY,
46
- }),
47
- );
48
-
49
- app.get('/api/protected', (req, res) => {
50
- const { machineId } = getAuth(req, { acceptsToken: 'm2m_token' });
51
- if (!machineId) {
42
+ app.use(async (req, res, next) => {
43
+ const secret = req.get('Authorization')?.split(' ')[1] || '';
44
+
45
+ try {
46
+ await clerkClient.m2mTokens.verifySecret({ secret });
47
+ } catch (error) {
52
48
res.status(401).send('Unauthorized');
53
49
return;
54
50
}
55
51
52
+ next();
53
+ });
54
+
55
+ app.get('/api/protected', (req, res) => {
56
56
res.send('Protected response');
57
57
});
58
58
@@ -70,41 +70,41 @@ test.describe('machine-to-machine auth @machine', () => {
70
70
await app . withEnv ( env ) ;
71
71
await app . dev ( ) ;
72
72
73
- const u = createTestUtils ( { app } ) ;
74
-
75
73
// Email server can access primary API server
76
- emailServer = await u . services . clerk . machines . create ( {
74
+ emailServer = await client . machines . create ( {
77
75
name : `${ fakeCompanyName } Email Server` ,
78
76
scopedMachines : [ primaryApiServer . id ] ,
79
77
} ) ;
80
- emailServerM2MToken = await u . services . clerk . m2mTokens . create ( {
78
+ emailServerM2MToken = await client . m2mTokens . create ( {
81
79
machineSecretKey : emailServer . secretKey ,
82
80
secondsUntilExpiration : 60 * 30 ,
83
81
} ) ;
84
82
85
83
// Analytics server cannot access primary API server
86
- analyticsServer = await u . services . clerk . machines . create ( {
84
+ analyticsServer = await client . machines . create ( {
87
85
name : `${ fakeCompanyName } Analytics Server` ,
88
86
// No scoped machines
89
87
} ) ;
90
- analyticsServerM2MToken = await u . services . clerk . m2mTokens . create ( {
88
+ analyticsServerM2MToken = await client . m2mTokens . create ( {
91
89
machineSecretKey : analyticsServer . secretKey ,
92
90
secondsUntilExpiration : 60 * 30 ,
93
91
} ) ;
94
92
} ) ;
95
93
96
94
test . afterAll ( async ( ) => {
97
- const u = createTestUtils ( { app } ) ;
95
+ const client = createClerkClient ( {
96
+ secretKey : instanceKeys . get ( 'with-api-keys' ) . sk ,
97
+ } ) ;
98
98
99
- await u . services . clerk . m2mTokens . revoke ( {
99
+ await client . m2mTokens . revoke ( {
100
100
m2mTokenId : emailServerM2MToken . id ,
101
101
} ) ;
102
- await u . services . clerk . m2mTokens . revoke ( {
102
+ await client . m2mTokens . revoke ( {
103
103
m2mTokenId : analyticsServerM2MToken . id ,
104
104
} ) ;
105
- await u . services . clerk . machines . delete ( emailServer . id ) ;
106
- await u . services . clerk . machines . delete ( primaryApiServer . id ) ;
107
- await u . services . clerk . machines . delete ( analyticsServer . id ) ;
105
+ await client . machines . delete ( emailServer . id ) ;
106
+ await client . machines . delete ( primaryApiServer . id ) ;
107
+ await client . machines . delete ( analyticsServer . id ) ;
108
108
109
109
await app . teardown ( ) ;
110
110
} ) ;
0 commit comments