소스 검색

feat: only use recaptcha if value exists.

Resolves #357.
poeti8 5 년 전
부모
커밋
3aab6cb73d
3개의 변경된 파일5개의 추가작업 그리고 5개의 파일을 삭제
  1. 2 3
      client/components/ReCaptcha.tsx
  2. 2 2
      server/env.ts
  3. 1 0
      server/handlers/auth.ts

+ 2 - 3
client/components/ReCaptcha.tsx

@@ -6,9 +6,8 @@ import React from "react";
 const { publicRuntimeConfig } = getConfig();
 
 const ReCaptcha = () => {
-  if (process.env.NODE_ENV !== "production") {
-    return null;
-  }
+  if (process.env.NODE_ENV !== "production") return null;
+  if (!publicRuntimeConfig.RECAPTCHA_SITE_KEY) return null;
 
   return (
     <Flex

+ 2 - 2
server/env.ts

@@ -25,8 +25,8 @@ const env = cleanEnv(process.env, {
   CUSTOM_DOMAIN_USE_HTTPS: bool({ default: false }),
   JWT_SECRET: str(),
   ADMIN_EMAILS: str({ default: "" }),
-  RECAPTCHA_SITE_KEY: str(),
-  RECAPTCHA_SECRET_KEY: str(),
+  RECAPTCHA_SITE_KEY: str({ default: "" }),
+  RECAPTCHA_SECRET_KEY: str({ default: "" }),
   GOOGLE_SAFE_BROWSING_KEY: str({ default: "" }),
   GOOGLE_ANALYTICS: str({ default: "" }),
   GOOGLE_ANALYTICS_UNIVERSAL: str({ default: "" }),

+ 1 - 0
server/handlers/auth.ts

@@ -87,6 +87,7 @@ export const cooldown: Handler = async (req, res, next) => {
 
 export const recaptcha: Handler = async (req, res, next) => {
   if (env.isDev || req.user) return next();
+  if (!env.RECAPTCHA_SECRET_KEY) return next();
 
   const isReCaptchaValid = await axios({
     method: "post",