This commit is contained in:
syuilo 2018-11-02 12:49:08 +09:00
parent befc35a3ac
commit a7e6b766be
No known key found for this signature in database
GPG key ID: BDC4C49D06AB9D69
26 changed files with 434 additions and 354 deletions

View file

@ -1,18 +1,25 @@
import $ from 'cafy';
import * as speakeasy from 'speakeasy';
import User, { ILocalUser } from '../../../../../models/user';
import getParams from '../../../get-params';
export const meta = {
requireCredential: true,
secure: true
secure: true,
params: {
token: {
validator: $.str
}
}
};
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'token' parameter
const [token, tokenErr] = $.str.get(params.token);
if (tokenErr) return rej('invalid token param');
const [ps, psErr] = getParams(meta, params);
if (psErr) return rej(psErr);
const _token = token.replace(/\s/g, '');
const _token = ps.token.replace(/\s/g, '');
if (user.twoFactorTempSecret == null) {
return rej('二段階認証の設定が開始されていません');

View file

@ -4,19 +4,26 @@ import * as speakeasy from 'speakeasy';
import * as QRCode from 'qrcode';
import User, { ILocalUser } from '../../../../../models/user';
import config from '../../../../../config';
import getParams from '../../../get-params';
export const meta = {
requireCredential: true,
secure: true
secure: true,
params: {
password: {
validator: $.str
}
}
};
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password);
if (passwordErr) return rej('invalid password param');
const [ps, psErr] = getParams(meta, params);
if (psErr) return rej(psErr);
// Compare password
const same = await bcrypt.compare(password, user.password);
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
return rej('incorrect password');

View file

@ -1,19 +1,26 @@
import $ from 'cafy';
import * as bcrypt from 'bcryptjs';
import User, { ILocalUser } from '../../../../../models/user';
import getParams from '../../../get-params';
export const meta = {
requireCredential: true,
secure: true
secure: true,
params: {
password: {
validator: $.str
}
}
};
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password);
if (passwordErr) return rej('invalid password param');
const [ps, psErr] = getParams(meta, params);
if (psErr) return rej(psErr);
// Compare password
const same = await bcrypt.compare(password, user.password);
const same = await bcrypt.compare(ps.password, user.password);
if (!same) {
return rej('incorrect password');