From 68ce6d574882c1badbb4a3d2772451534014dd01 Mon Sep 17 00:00:00 2001 From: Akihiko Odaki Date: Tue, 27 Mar 2018 16:51:12 +0900 Subject: Implement remote account resolution --- src/api/private/signin.ts | 13 ++++++++----- src/api/private/signup.ts | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) (limited to 'src/api/private') diff --git a/src/api/private/signin.ts b/src/api/private/signin.ts index ae0be03c73..00dcb8afc8 100644 --- a/src/api/private/signin.ts +++ b/src/api/private/signin.ts @@ -1,7 +1,7 @@ import * as express from 'express'; import * as bcrypt from 'bcryptjs'; import * as speakeasy from 'speakeasy'; -import { default as User, IUser } from '../models/user'; +import { default as User, ILocalAccount, IUser } from '../models/user'; import Signin, { pack } from '../models/signin'; import event from '../event'; import signin from '../common/signin'; @@ -32,7 +32,8 @@ export default async (req: express.Request, res: express.Response) => { // Fetch user const user: IUser = await User.findOne({ - username_lower: username.toLowerCase() + username_lower: username.toLowerCase(), + host: null }, { fields: { data: false, @@ -47,13 +48,15 @@ export default async (req: express.Request, res: express.Response) => { return; } + const account = user.account as ILocalAccount; + // Compare password - const same = await bcrypt.compare(password, user.account.password); + const same = await bcrypt.compare(password, account.password); if (same) { - if (user.account.two_factor_enabled) { + if (account.two_factor_enabled) { const verified = (speakeasy as any).totp.verify({ - secret: user.account.two_factor_secret, + secret: account.two_factor_secret, encoding: 'base32', token: token }); diff --git a/src/api/private/signup.ts b/src/api/private/signup.ts index 280153d4f5..96e0495709 100644 --- a/src/api/private/signup.ts +++ b/src/api/private/signup.ts @@ -64,7 +64,8 @@ export default async (req: express.Request, res: express.Response) => { // Fetch exist user that same username const usernameExist = await User .count({ - username_lower: username.toLowerCase() + username_lower: username.toLowerCase(), + host: null }, { limit: 1 }); -- cgit v1.3.1-freya