Skip to content

Commit 89bd7a1

Browse files
Upgraded the @clerk/backend package from version 0.38.3 to 1.18.0 and modified the authentication logic to align with the latest API changes. (#183)
* Update auth.ts * Update package.json
1 parent 9d55c12 commit 89bd7a1

File tree

2 files changed

+34
-34
lines changed

2 files changed

+34
-34
lines changed

ts/clerk/auth/auth.ts

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,14 @@
1-
import {Clerk, verifyToken} from "@clerk/backend";
2-
import {APIError, Gateway, Header} from "encore.dev/api";
3-
import {authHandler} from "encore.dev/auth";
4-
import {secret} from "encore.dev/config";
5-
import {AUTHORIZED_PARTIES, DOMAIN} from "./config";
1+
import { createClerkClient, verifyToken } from "@clerk/backend";
2+
import { APIError, Gateway, Header } from "encore.dev/api";
3+
import { authHandler } from "encore.dev/auth";
4+
import { secret } from "encore.dev/config";
5+
66
import log from "encore.dev/log";
7+
import { AUTHORIZED_PARTIES } from "./config";
78

89
const clerkSecretKey = secret("ClerkSecretKey");
910

10-
const clerkClient = Clerk({
11+
const clerkClient = createClerkClient({
1112
secretKey: clerkSecretKey(),
1213
});
1314

@@ -21,32 +22,31 @@ interface AuthData {
2122
emailAddress: string | null;
2223
}
2324

24-
const myAuthHandler = authHandler(
25-
async (params: AuthParams): Promise<AuthData> => {
26-
const token = params.authorization.replace('Bearer ', '');
27-
28-
if (!token) {
29-
throw APIError.unauthenticated("no token provided");
30-
}
31-
32-
try {
33-
const result = await verifyToken(token, {
34-
issuer: DOMAIN,
35-
authorizedParties: AUTHORIZED_PARTIES,
36-
});
37-
38-
const user = await clerkClient.users.getUser(result.sub);
39-
40-
return {
41-
userID: user.id,
42-
imageUrl: user.imageUrl,
43-
emailAddress: user.emailAddresses[0].emailAddress || null,
44-
};
45-
} catch (e) {
46-
log.error(e);
47-
throw APIError.unauthenticated("invalid token", e as Error);
48-
}
25+
const myAuthHandler = authHandler(async (params: AuthParams): Promise<
26+
AuthData
27+
> => {
28+
const token = params.authorization.replace("Bearer ", "");
29+
30+
if (!token) {
31+
throw APIError.unauthenticated("no token provided");
4932
}
50-
);
5133

52-
export const mygw = new Gateway({authHandler: myAuthHandler});
34+
try {
35+
const result = await verifyToken(token, {
36+
authorizedParties: AUTHORIZED_PARTIES,
37+
});
38+
39+
const user = await clerkClient.users.getUser(result.sub);
40+
41+
return {
42+
userID: user.id,
43+
imageUrl: user.imageUrl,
44+
emailAddress: user.emailAddresses[0].emailAddress || null,
45+
};
46+
} catch (e) {
47+
log.error(e);
48+
throw APIError.unauthenticated("invalid token", e as Error);
49+
}
50+
});
51+
52+
export const mygw = new Gateway({ authHandler: myAuthHandler });

ts/clerk/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
"vite": "^4.4.5"
1515
},
1616
"dependencies": {
17-
"@clerk/backend": "^0.38.3",
17+
"@clerk/backend": "^1.18.0",
1818
"encore.dev": "^1.44.5",
1919
"@clerk/clerk-react": "^5.17.1",
2020
"react": "^18.2.0",

0 commit comments

Comments
 (0)