summaryrefslogtreecommitdiff
path: root/src/server/api/private
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-07 00:08:21 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-07 00:08:21 +0900
commita6f8327aa263022ed5d079f8e413bb17480feb7b (patch)
treee0f75658f50da107627b838b10832764e71c192c /src/server/api/private
parent10.42.2 (diff)
downloadsharkey-a6f8327aa263022ed5d079f8e413bb17480feb7b.tar.gz
sharkey-a6f8327aa263022ed5d079f8e413bb17480feb7b.tar.bz2
sharkey-a6f8327aa263022ed5d079f8e413bb17480feb7b.zip
reCAPTCHAの設定をDBに保存するように
Diffstat (limited to 'src/server/api/private')
-rw-r--r--src/server/api/private/signup.ts19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/server/api/private/signup.ts b/src/server/api/private/signup.ts
index eefffd8554..3a367ff119 100644
--- a/src/server/api/private/signup.ts
+++ b/src/server/api/private/signup.ts
@@ -1,7 +1,6 @@
import * as Koa from 'koa';
import * as bcrypt from 'bcryptjs';
import { generate as generateKeypair } from '../../../crypto_key';
-const recaptcha = require('recaptcha-promise');
import User, { IUser, validateUsername, validatePassword, pack } from '../../../models/user';
import generateUserToken from '../common/generate-native-user-token';
import config from '../../../config';
@@ -10,18 +9,20 @@ import RegistrationTicket from '../../../models/registration-tickets';
import usersChart from '../../../chart/users';
import fetchMeta from '../../../misc/fetch-meta';
-if (config.recaptcha) {
- recaptcha.init({
- secret_key: config.recaptcha.secret_key
- });
-}
-
export default async (ctx: Koa.Context) => {
const body = ctx.request.body as any;
+ const instance = await fetchMeta();
+
+ const recaptcha = require('recaptcha-promise');
+
// Verify recaptcha
// ただしテスト時はこの機構は障害となるため無効にする
- if (process.env.NODE_ENV !== 'test' && config.recaptcha != null) {
+ if (process.env.NODE_ENV !== 'test' && instance.enableRecaptcha) {
+ recaptcha.init({
+ secret_key: instance.recaptchaSecretKey
+ });
+
const success = await recaptcha(body['g-recaptcha-response']);
if (!success) {
@@ -34,8 +35,6 @@ export default async (ctx: Koa.Context) => {
const password = body['password'];
const invitationCode = body['invitationCode'];
- const instance = await fetchMeta();
-
if (instance && instance.disableRegistration) {
if (invitationCode == null || typeof invitationCode != 'string') {
ctx.status = 400;