diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2019-02-22 11:46:58 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-02-22 11:46:58 +0900 |
| commit | 2756f553c68082342a784ef716c62da6cea6f3ca (patch) | |
| tree | 1e0364ca9ddc1fd88e311f0687746f44e007effd /src/server/api/endpoints/i/2fa | |
| parent | Update CHANGELOG.md (diff) | |
| download | sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.gz sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.tar.bz2 sharkey-2756f553c68082342a784ef716c62da6cea6f3ca.zip | |
Improve error handling of API (#4345)
* wip
* wip
* wip
* Update attached_notes.ts
* wip
* Refactor
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* Update call.ts
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* wip
* :v:
* Fix
Diffstat (limited to 'src/server/api/endpoints/i/2fa')
| -rw-r--r-- | src/server/api/endpoints/i/2fa/done.ts | 10 | ||||
| -rw-r--r-- | src/server/api/endpoints/i/2fa/register.ts | 24 | ||||
| -rw-r--r-- | src/server/api/endpoints/i/2fa/unregister.ts | 8 |
3 files changed, 21 insertions, 21 deletions
diff --git a/src/server/api/endpoints/i/2fa/done.ts b/src/server/api/endpoints/i/2fa/done.ts index 2ee0c8886e..556354c386 100644 --- a/src/server/api/endpoints/i/2fa/done.ts +++ b/src/server/api/endpoints/i/2fa/done.ts @@ -15,11 +15,11 @@ export const meta = { } }; -export default define(meta, (ps, user) => new Promise(async (res, rej) => { +export default define(meta, async (ps, user) => { const _token = ps.token.replace(/\s/g, ''); if (user.twoFactorTempSecret == null) { - return rej('二段階認証の設定が開始されていません'); + throw new Error('二段階認証の設定が開始されていません'); } const verified = (speakeasy as any).totp.verify({ @@ -29,7 +29,7 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { }); if (!verified) { - return rej('not verified'); + throw new Error('not verified'); } await User.update(user._id, { @@ -39,5 +39,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { } }); - res(); -})); + return; +}); diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts index 38e3ca7806..302b51ec0b 100644 --- a/src/server/api/endpoints/i/2fa/register.ts +++ b/src/server/api/endpoints/i/2fa/register.ts @@ -18,12 +18,12 @@ export const meta = { } }; -export default define(meta, (ps, user) => new Promise(async (res, rej) => { +export default define(meta, async (ps, user) => { // Compare password const same = await bcrypt.compare(ps.password, user.password); if (!same) { - return rej('incorrect password'); + throw new Error('incorrect password'); } // Generate user's secret key @@ -38,17 +38,17 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { }); // Get the data URL of the authenticator URL - QRCode.toDataURL(speakeasy.otpauthURL({ + const dataUrl = await QRCode.toDataURL(speakeasy.otpauthURL({ secret: secret.base32, encoding: 'base32', label: user.username, issuer: config.host - }), (err, data_url) => { - res({ - qr: data_url, - secret: secret.base32, - label: user.username, - issuer: config.host - }); - }); -})); + })); + + return { + qr: dataUrl, + secret: secret.base32, + label: user.username, + issuer: config.host + }; +}); diff --git a/src/server/api/endpoints/i/2fa/unregister.ts b/src/server/api/endpoints/i/2fa/unregister.ts index 2cb48d93cd..37b2639198 100644 --- a/src/server/api/endpoints/i/2fa/unregister.ts +++ b/src/server/api/endpoints/i/2fa/unregister.ts @@ -15,12 +15,12 @@ export const meta = { } }; -export default define(meta, (ps, user) => new Promise(async (res, rej) => { +export default define(meta, async (ps, user) => { // Compare password const same = await bcrypt.compare(ps.password, user.password); if (!same) { - return rej('incorrect password'); + throw new Error('incorrect password'); } await User.update(user._id, { @@ -30,5 +30,5 @@ export default define(meta, (ps, user) => new Promise(async (res, rej) => { } }); - res(); -})); + return; +}); |