mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-26 08:36:12 +01:00
feat: handle HTTP 429 as a response code
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user