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); | 	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 username = body['username']; | ||||||
| 	const password = body['password']; | 	const password = body['password']; | ||||||
| 	const token = body['token']; | 	const token = body['token']; | ||||||
|  | @ -96,6 +84,18 @@ export default async (ctx: Koa.Context) => { | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	if (!profile.twoFactorEnabled) { | 	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) { | 		if (same) { | ||||||
| 			signin(ctx, user); | 			signin(ctx, user); | ||||||
| 			return; | 			return; | ||||||
|  |  | ||||||
|  | @ -11,6 +11,8 @@ | ||||||
| 				<template #prefix><i class="fas fa-lock"></i></template> | 				<template #prefix><i class="fas fa-lock"></i></template> | ||||||
| 				<template #caption><button class="_textButton" type="button" @click="resetPassword">{{ $ts.forgotPassword }}</button></template> | 				<template #caption><button class="_textButton" type="button" @click="resetPassword">{{ $ts.forgotPassword }}</button></template> | ||||||
| 			</MkInput> | 			</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> | 			<MkButton class="_formBlock" type="submit" primary :disabled="signing" style="margin: 0 auto;">{{ signing ? $ts.loggingIn : $ts.login }}</MkButton> | ||||||
| 		</div> | 		</div> | ||||||
| 		<div v-if="totpLogin" class="2fa-signin" :class="{ securityKeys: user && user.securityKeys }"> | 		<div v-if="totpLogin" class="2fa-signin" :class="{ securityKeys: user && user.securityKeys }"> | ||||||
|  | @ -33,8 +35,6 @@ | ||||||
| 					<template #label>{{ $ts.token }}</template> | 					<template #label>{{ $ts.token }}</template> | ||||||
| 					<template #prefix><i class="fas fa-gavel"></i></template> | 					<template #prefix><i class="fas fa-gavel"></i></template> | ||||||
| 				</MkInput> | 				</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> | 				<MkButton type="submit" :disabled="signing" primary style="margin: 0 auto;">{{ signing ? $ts.loggingIn : $ts.login }}</MkButton> | ||||||
| 			</div> | 			</div> | ||||||
| 		</div> | 		</div> | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue