Merge pull request #74 from Gimanh/fix/70-oidc-login-nonce

fix: oidc login
This commit is contained in:
Nikolai Giman
2026-07-05 23:30:11 +02:00
committed by GitHub
2 changed files with 2 additions and 5 deletions
+1 -1
View File
@@ -313,7 +313,7 @@ export default class AuthController {
loginByCode = async (req: Request, res: Response) => {
const schema = z.object({
email: z.string().trim().email().toLowerCase(),
code: z.string().trim().regex(/^\d{6}$/, '6-digit code'),
code: z.string().trim().min(6).max(64),
});
const data = schema.safeParse(req.body);
@@ -114,6 +114,7 @@ export class OidcProvider implements SsoProvider {
const tokens = await client.authorizationCodeGrant(config, currentUrl, {
pkceCodeVerifier: codeVerifier,
expectedState: returnedState,
expectedNonce: storedNonce,
})
const claims = tokens.claims()
@@ -122,10 +123,6 @@ export class OidcProvider implements SsoProvider {
throw new Error('OIDC token missing email claim')
}
if (claims.nonce !== storedNonce) {
throw new Error('Nonce mismatch — possible token replay attack')
}
return {
email: (claims.email as string).toLowerCase(),
externalId: claims.sub,