use verifyChallenge
This commit is contained in:
		| @@ -12,6 +12,7 @@ import fastifyView from '@fastify/view'; | ||||
| import pug from 'pug'; | ||||
| import bodyParser from 'body-parser'; | ||||
| import fastifyExpress from '@fastify/express'; | ||||
| import { verifyChallenge } from 'pkce-challenge'; | ||||
| import { secureRndstr } from '@/misc/secure-rndstr.js'; | ||||
| import { MetaService } from '@/core/MetaService.js'; | ||||
| import { HttpRequestService } from '@/core/HttpRequestService.js'; | ||||
| @@ -251,12 +252,6 @@ async function discoverClientInformation(httpRequestService: HttpRequestService, | ||||
| // 	}; | ||||
| // } | ||||
|  | ||||
| function pkceS256(codeVerifier: string): string { | ||||
| 	return crypto.createHash('sha256') | ||||
| 		.update(codeVerifier, 'ascii') | ||||
| 		.digest('base64url'); | ||||
| } | ||||
|  | ||||
| type OmitFirstElement<T extends unknown[]> = T extends [unknown, ...(infer R)] | ||||
| 	? R | ||||
| 	: []; | ||||
| @@ -365,7 +360,8 @@ export class OAuth2ProviderService { | ||||
| 				delete TEMP_GRANT_CODES[code]; | ||||
| 				if (body.client_id !== granted.clientId) return [false]; | ||||
| 				if (redirectUri !== granted.redirectUri) return [false]; | ||||
| 				if (!body.code_verifier || pkceS256(body.code_verifier as string) !== granted.codeChallenge) return [false]; | ||||
| 				if (!body.code_verifier) return [false]; | ||||
| 				if (!(await verifyChallenge(body.code_verifier as string, granted.codeChallenge))) return [false]; | ||||
|  | ||||
| 				const accessToken = secureRndstr(128, true); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Kagami Sascha Rosylight
					Kagami Sascha Rosylight