Skip to content

Commit 7102203

Browse files
committed
Fix m2m token validator
1 parent 01d9039 commit 7102203

File tree

3 files changed

+13
-7
lines changed

3 files changed

+13
-7
lines changed

.env.sample

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ BHMKuGsgiBjJ7xHNxaJvBzrwdArogHSxEPmT6gNr5rZeXmJUWzrpQIstMXA9gEXX
88
LfKzG61idXFIwBa6t5YBCCMx+hoCxhcEiwIDAQAB
99
-----END RSA PUBLIC KEY-----"
1010
AUTH0_CLIENT_ID=BXWXUWnilVUPdN01t2Se29Tw2ZYNGZvH
11+
AUTH0_M2M_AUDIENCE=https://m2m.topcoder-dev.com/
1112

1213
DB_USERNAME=topcoderuser
1314
DB_PASSWORD=randompassword

src/core/auth/guards/auth.guard.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ export class AuthGuard implements CanActivate {
5050
[context.getHandler(), context.getClass()],
5151
);
5252

53-
const reqScopes = req.m2mTokenScope.split(' ')
54-
if (reqScopes.some(reqScope => allowedM2mScopes.includes(reqScope))) {
53+
const reqScopes = req.m2mTokenScope.split(' ');
54+
if (reqScopes.some((reqScope) => allowedM2mScopes.includes(reqScope))) {
5555
return true;
5656
}
5757
return false;

src/core/auth/middleware/tokenValidator.middleware.ts

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,23 +16,28 @@ export class TokenValidatorMiddleware implements NestMiddleware {
1616

1717
let decoded: any;
1818
try {
19-
decoded = jwt.verify(idToken, process.env.AUTH0_CERT, {
20-
audience: process.env.AUTH0_CLIENT_ID,
21-
});
19+
decoded = jwt.verify(idToken, process.env.AUTH0_CERT);
2220
} catch (error) {
2321
console.error('Error verifying JWT', error);
2422
throw new UnauthorizedException('Invalid or expired JWT!');
2523
}
2624

27-
// TODO: verify decoded.aud
2825
if (!decoded) {
2926
req.idTokenVerified = false;
3027
return next();
3128
}
3229

33-
req.idTokenVerified = true;
3430
req.isM2M = !!decoded.scope;
31+
const aud = req.isM2M
32+
? process.env.AUTH0_M2M_AUDIENCE
33+
: process.env.AUTH0_CLIENT_ID;
34+
35+
if (decoded.aud !== aud) {
36+
req.idTokenVerified = false;
37+
return next();
38+
}
3539

40+
req.idTokenVerified = true;
3641
if (decoded.scope) {
3742
req.m2mTokenScope = decoded.scope;
3843
req.m2mTokenAudience = decoded.aud;

0 commit comments

Comments
 (0)