mirror of
https://github.com/NodeBB/NodeBB.git
synced 2025-10-29 18:16:17 +01:00
52 lines
1.2 KiB
JavaScript
52 lines
1.2 KiB
JavaScript
'use strict';
|
|
|
|
const user = require('../../user');
|
|
const authenticationController = require('../authentication');
|
|
const slugify = require('../../slugify');
|
|
const helpers = require('../helpers');
|
|
|
|
const Utilities = module.exports;
|
|
|
|
Utilities.ping = {};
|
|
Utilities.ping.get = (req, res) => {
|
|
helpers.formatApiResponse(200, res, {
|
|
pong: true,
|
|
});
|
|
};
|
|
|
|
Utilities.ping.post = (req, res) => {
|
|
helpers.formatApiResponse(200, res, {
|
|
uid: req.user.uid,
|
|
received: req.body,
|
|
});
|
|
};
|
|
|
|
Utilities.login = (req, res) => {
|
|
res.locals.continueLogin = async (req, res) => {
|
|
const { username, password } = req.body;
|
|
|
|
const userslug = slugify(username);
|
|
const uid = await user.getUidByUserslug(userslug);
|
|
let ok = false;
|
|
try {
|
|
ok = await user.isPasswordCorrect(uid, password, req.ip);
|
|
} catch (err) {
|
|
if (err.message === '[[error:account-locked]]') {
|
|
return helpers.formatApiResponse(429, res, err);
|
|
}
|
|
}
|
|
|
|
if (ok) {
|
|
const userData = await user.getUsers([uid], uid);
|
|
helpers.formatApiResponse(200, res, userData);
|
|
} else {
|
|
helpers.formatApiResponse(403, res);
|
|
}
|
|
};
|
|
res.locals.noScriptErrors = (req, res, err, statusCode) => {
|
|
helpers.formatApiResponse(statusCode, res, new Error(err));
|
|
};
|
|
|
|
authenticationController.login(req, res);
|
|
};
|