feat: handle HTTP 429 as a response code

v1.18.x
Julian Lam 4 years ago
parent 56f929ed4f
commit 8bbb320867

@ -461,6 +461,11 @@ helpers.generateError = (statusCode, message) => {
payload.status.message = message || 'HTTPS is required for requests to the write api, please re-send your request via HTTPS';
break;
case 429:
payload.status.code = 'too-many-requests';
payload.status.message = message || 'You have made too many requests, please try again later';
break;
case 500:
payload.status.code = 'internal-server-error';
payload.status.message = message || payload.status.message;

@ -27,7 +27,16 @@ Utilities.login = (req, res) => {
const userslug = slugify(username);
const uid = await user.getUidByUserslug(userslug);
const ok = await user.isPasswordCorrect(uid, password, req.ip);
let ok = false;
try {
ok = await user.isPasswordCorrect(uid, password, req.ip);
} catch (err) {
if (err.message === '[[error:account-locked]]') {
helpers.formatApiResponse(429, res, err);
} else {
helpers.formatApiResponse(500, res, err);
}
}
if (ok) {
const userData = await user.getUsers([uid], uid);

Loading…
Cancel
Save