CAPTCHA求めるのは2fa認証が無効になっているときだけにした
2faのトークンは期限付きだから、CAPTCHA解いてる間に期限切れになる
This commit is contained in:
		
							parent
							
								
									9783f2de67
								
							
						
					
					
						commit
						02a43a310f
					
				
					 2 changed files with 14 additions and 14 deletions
				
			
		|  | @ -20,18 +20,6 @@ export default async (ctx: Koa.Context) => { | |||
| 
 | ||||
| 	const instance = await fetchMeta(true); | ||||
| 
 | ||||
| 	if (instance.enableHcaptcha && instance.hcaptchaSecretKey) { | ||||
| 		await verifyHcaptcha(instance.hcaptchaSecretKey, body['hcaptcha-response']).catch(e => { | ||||
| 			ctx.throw(400, e); | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	if (instance.enableRecaptcha && instance.recaptchaSecretKey) { | ||||
| 		await verifyRecaptcha(instance.recaptchaSecretKey, body['g-recaptcha-response']).catch(e => { | ||||
| 			ctx.throw(400, e); | ||||
| 		}); | ||||
| 	} | ||||
| 
 | ||||
| 	const username = body['username']; | ||||
| 	const password = body['password']; | ||||
| 	const token = body['token']; | ||||
|  | @ -96,6 +84,18 @@ export default async (ctx: Koa.Context) => { | |||
| 	} | ||||
| 
 | ||||
| 	if (!profile.twoFactorEnabled) { | ||||
| 		if (instance.enableHcaptcha && instance.hcaptchaSecretKey) { | ||||
| 			await verifyHcaptcha(instance.hcaptchaSecretKey, body['hcaptcha-response']).catch(e => { | ||||
| 				ctx.throw(400, e); | ||||
| 			}); | ||||
| 		} | ||||
| 	 | ||||
| 		if (instance.enableRecaptcha && instance.recaptchaSecretKey) { | ||||
| 			await verifyRecaptcha(instance.recaptchaSecretKey, body['g-recaptcha-response']).catch(e => { | ||||
| 				ctx.throw(400, e); | ||||
| 			}); | ||||
| 		} | ||||
| 	 | ||||
| 		if (same) { | ||||
| 			signin(ctx, user); | ||||
| 			return; | ||||
|  |  | |||
|  | @ -11,6 +11,8 @@ | |||
| 				<template #prefix><i class="fas fa-lock"></i></template> | ||||
| 				<template #caption><button class="_textButton" type="button" @click="resetPassword">{{ $ts.forgotPassword }}</button></template> | ||||
| 			</MkInput> | ||||
| 			<MkCaptcha v-if="meta.enableHcaptcha" ref="hcaptcha" v-model="hCaptchaResponse" class="_formBlock captcha" provider="hcaptcha" :sitekey="meta.hcaptchaSiteKey"/> | ||||
| 			<MkCaptcha v-if="meta.enableRecaptcha" ref="recaptcha" v-model="reCaptchaResponse" class="_formBlock captcha" provider="recaptcha" :sitekey="meta.recaptchaSiteKey"/> | ||||
| 			<MkButton class="_formBlock" type="submit" primary :disabled="signing" style="margin: 0 auto;">{{ signing ? $ts.loggingIn : $ts.login }}</MkButton> | ||||
| 		</div> | ||||
| 		<div v-if="totpLogin" class="2fa-signin" :class="{ securityKeys: user && user.securityKeys }"> | ||||
|  | @ -33,8 +35,6 @@ | |||
| 					<template #label>{{ $ts.token }}</template> | ||||
| 					<template #prefix><i class="fas fa-gavel"></i></template> | ||||
| 				</MkInput> | ||||
| 				<MkCaptcha v-if="meta.enableHcaptcha" ref="hcaptcha" v-model="hCaptchaResponse" class="_formBlock captcha" provider="hcaptcha" :sitekey="meta.hcaptchaSiteKey"/> | ||||
| 				<MkCaptcha v-if="meta.enableRecaptcha" ref="recaptcha" v-model="reCaptchaResponse" class="_formBlock captcha" provider="recaptcha" :sitekey="meta.recaptchaSiteKey"/> | ||||
| 				<MkButton type="submit" :disabled="signing" primary style="margin: 0 auto;">{{ signing ? $ts.loggingIn : $ts.login }}</MkButton> | ||||
| 			</div> | ||||
| 		</div> | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue