From 0e4a111f81cceed275d9bec2695f6e401fb654d8 Mon Sep 17 00:00:00 2001 From: syuilo Date: Fri, 12 Nov 2021 02:02:25 +0900 Subject: refactoring Resolve #7779 --- src/server/api/endpoints/i/2fa/register.ts | 54 ------------------------------ 1 file changed, 54 deletions(-) delete mode 100644 src/server/api/endpoints/i/2fa/register.ts (limited to 'src/server/api/endpoints/i/2fa/register.ts') diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts deleted file mode 100644 index b03b98188a..0000000000 --- a/src/server/api/endpoints/i/2fa/register.ts +++ /dev/null @@ -1,54 +0,0 @@ -import $ from 'cafy'; -import * as bcrypt from 'bcryptjs'; -import * as speakeasy from 'speakeasy'; -import * as QRCode from 'qrcode'; -import config from '@/config/index'; -import define from '../../../define'; -import { UserProfiles } from '@/models/index'; - -export const meta = { - requireCredential: true as const, - - secure: true, - - params: { - password: { - validator: $.str - } - } -}; - -export default define(meta, async (ps, user) => { - const profile = await UserProfiles.findOneOrFail(user.id); - - // Compare password - const same = await bcrypt.compare(ps.password, profile.password!); - - if (!same) { - throw new Error('incorrect password'); - } - - // Generate user's secret key - const secret = speakeasy.generateSecret({ - length: 32 - }); - - await UserProfiles.update(user.id, { - twoFactorTempSecret: secret.base32 - }); - - // Get the data URL of the authenticator URL - const dataUrl = await QRCode.toDataURL(speakeasy.otpauthURL({ - secret: secret.base32, - encoding: 'base32', - label: user.username, - issuer: config.host - })); - - return { - qr: dataUrl, - secret: secret.base32, - label: user.username, - issuer: config.host - }; -}); -- cgit v1.2.3-freya