Skip to content

Commit 42976e5

Browse files
committed
separated auth logic
1 parent 1a74bcf commit 42976e5

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/controllers/guildRoleHandler.ts

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,15 @@ import {
88
createNewRole,
99
memberGroupRole,
1010
} from "../typeDefinitions/discordMessage.types";
11+
import { verifyBot } from "../utils/verifyAuthToken";
1112

1213
export async function createGuildRoleHandler(request: IRequest, env: env) {
1314
const authHeader = request.headers.get("Authorization");
1415
if (!authHeader) {
1516
return new JSONResponse(response.BAD_SIGNATURE);
1617
}
17-
const authToken = authHeader.split(" ")[1];
1818
try {
19-
await jwt.verify(authToken, env.RDS_SERVERLESS_PUBLIC_KEY, {
20-
algorithm: "RS256",
21-
});
19+
await verifyBot(authHeader, env);
2220
const body: createNewRole = await request.json();
2321

2422
const res = await createGuildRole(body, env);

src/utils/verifyAuthToken.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { env } from "../typeDefinitions/default.types";
2+
import jwt from "@tsndr/cloudflare-worker-jwt";
3+
4+
/**
5+
*
6+
* @param authHeader { string } : the auth header of request
7+
* @param env { env }: the ctx (context) which contains the secrets put in as wrangler secrets.
8+
*/
9+
10+
export async function verifyBot(authHeader: string, env: env) {
11+
const authToken = authHeader.split(" ")[1];
12+
await jwt.verify(authToken, env.RDS_SERVERLESS_PUBLIC_KEY, {
13+
algorithm: "RS256",
14+
});
15+
}

0 commit comments

Comments
 (0)